JNDIはJava Naming and Directory Interfaceの略です。
JNDIは、一般に「ネーミングサービス」や「ディレクトリサービス」と言われる名前検索により情報を取り出すサービスへ、Javaプログラムからアクセスする手段を提供します。
JDBC 2.0で導入されたJDBCデータソースはJNDIと組み合わせて使用することにより、アプリケーションの自由度を高めています。
JNDI APIは、「ネーミングサービス」や「ディレクトリサービス」にJavaプログラムからアクセスするための共通APIです。実際に「ネーミングサービス」や「ディレクトリサービス」へ対する処理は、JNDIサービスプロバイダと呼ばれるライブラリに実装されます。アプリケーションは使用するJNDIサービスプロバイダを切り替えるだけで、別のサービスにアクセスすることができます。
JDBCドライバでは、JDBCデータソースのためのネーミングサービスとJNDIサービスプロバイダ、およびJDBCデータソース登録ツールを提供しています。
ネーミングサービスはJDBCデータソースを登録および管理します。
JDBCアプリケーションは、登録されたJDBCデータソースを、JNDIを使用して取得し、利用します。
JDBCデータソースを使用する場合、事前にネーミングサービスを起動しておく必要があります。
ネーミングサービスの起動には、以下の2種類の方法があります。
Windows(R)サービス機能を利用したネーミングサービスの起動
Javaコマンドを使用したネーミングサービスの起動
注意
ネーミングサービスは、同時に2つ以上起動しないでください。
処理のタイミングにより、ネーミングサービスで管理している情報に矛盾が発生し、JDBCデータソースの登録情報が壊れる可能性があります。
ネーミングサービスをWindows(R)サービスに登録して起動する方法について、説明します。ネーミングサービスを以下のOS上で起動する場合、この方法を使用してください。
Windows(R) 2000
Windows(R) XP
Windows Server(R) 2003
Windows Vista(R)
Windows(R) 7
Windows Server(R) 2008
Windows Server(R) 2008 R2
ネーミングサービスをWindows(R)のサービスに登録することで、パソコンの起動と共に、ネーミングサービスを自動で起動し、バックグラウンドで動作させることができます。上記のOS上でネーミングサービスを起動する場合、ネーミングサービスをWindows(R)のサービスに登録することを推奨します。
Windows(R)サービスへの登録方法
Windows(R)サービスへの登録は、symjddefnsコマンドを使用します。登録されるサービス名は、Symfoware JDBC Naming Serviceです。登録手順は、以下のとおりです。
参照
symjddefnsコマンドの詳細については、“コマンドリファレンス”を参照してください。
コマンドプロンプトを起動します。
注意
Windows Server(R) 2008またはWindows Server(R) 2008 R2において、symjddefnsコマンドは、“管理者: コマンドプロンプト”から実行する必要があります。[コマンドプロンプト]を右クリックして表示されるメニューから[管理者として実行]を選択し、“管理者:コマンドプロンプト”を起動してください。
symjddefnsコマンドを実行して、Symfoware JDBC Naming ServiceをWindows(R)サービスに登録します。
以下の画面と同じ[ユーザー アカウント制御]ダイアログが表示された場合は、[続行]ボタンをクリックし、処理を継続してください。
JDKをC:\Interstage\JDK6にインストールしていて、ネーミングサービスのポート番号を26600にする場合
symjddefns -add -jdk C:\Interstage\JDK6 -port 26600
Windows(R)サービスの起動方法
Symfoware JDBC Naming Serviceは、パソコン起動時に自動的に起動します。
手動で起動する場合、以下の手順で行ってください。
[管理ツール]で[サービス]を起動します。
Symfoware JDBC Naming Serviceを選択し、[サービスの開始]ボタンをクリックします。
Windows(R)サービスの停止方法
Symfoware JDBC Naming Serviceは、パソコンのシャットダウン時に自動的に停止します。手動で停止する場合、以下の手順で行ってください
[管理ツール]で[サービス]を起動します。
Symfoware JDBC Naming Serviceを選択し、[サービスの停止]ボタンをクリックします。
サービスの削除方法について
Symfoware Server クライアント機能をアンインストールすると、Symfoware JDBC Naming Serviceも削除されます。
Symfoware JDBC Naming Serviceを手動で削除したい場合、以下の手順で行ってください。
コマンドプロンプトを起動します。
symjddefnsコマンドを実行して、Symfoware JDBC Naming Serviceを削除します。
symjddefns -del
Windowsファイアウォール機能について
Windowsファイアウォール機能を有効にする場合、以下の手順でWebサーバのポート番号を有効にしてください。
以下のいずれかのサービスパックを適用してください。
Microsoft(R) Windows(R) XP Service Pack 2
Microsoft(R) Windows Server(R) 2003 Service Pack1
[スタート]メニューの[コントロールパネル]で[Windowsファイアウォール]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムおよびサービス]リストボックスで、3.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォール]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[Windowsファイアウォール]アイコンをダブルクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[システムとセキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
左側のウィンドウの[詳細設定]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面で、左側のウィンドウの[受信の規則]をクリックします。
右側のウィンドウの[新しい規則]をクリックします。
[新規の受信の規則ウィザード]画面の[ポート]を選択し、[次へ]をクリックします。
[TCP]および[特定のローカルポート]を選択し、ネーミングサービスで使用しているポート番号を指定した後、[次へ]をクリックします。ネーミングサービスのポート番号の初期値は、26600です。
[接続を許可する]を選択し、[次へ]をクリックします。
この規則を適用するプロファイルを選択し、[次へ]をクリックします。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定し、[完了]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面の中央のウィンドウの[受信の規則]で、追加した規則が有効になっていることを確認します。
[スタート]メニューの[コントロールパネル]をクリックします。
[セキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[システムとセキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
左側のウィンドウの[詳細設定]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面で、左側のウィンドウの[受信の規則]をクリックします。
右側のウィンドウの[新しい規則]をクリックします。
[新規の受信の規則ウィザード]画面の[ポート]を選択し、[次へ]をクリックします。
[TCP]および[特定のローカルポート]を選択し、ネーミングサービスで使用しているポート番号を指定した後、[次へ]をクリックします。ネーミングサービスのポート番号の初期値は、26600です。
[接続を許可する]を選択し、[次へ]をクリックします。
この規則を適用するプロファイルを選択し、[次へ]をクリックします。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定し、[完了]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面の中央のウィンドウの[受信の規則]で、追加した規則が有効になっていることを確認します。
JDBCドライバをインストールしたマシンで以下のjavaコマンドを実行し、ネーミングサービスを起動します。
java com.fujitsu.symfoware.jdbc2.naming.SYMNameService [<port_no>]
ネーミングサービスの使用するポート番号を指定します。
省略した場合、26600になります。
ポート番号は、1024~32767の範囲で、未使用のポート番号を指定してください。
ポート番号は、以下の範囲で、未使用の値を指定してください。
Windows(R) 2000、Windows(R) XPまたはWindows Server(R) 2003の場合:5001~49151
Windows Vista(R)、Windows(R) 7、Windows Server(R) 2008またはWindows Server(R) 2008 R2の場合:1024~49151
ポート番号が26600の場合
java com.fujitsu.symfoware.jdbc2.naming.SYMNameService 26600
注意
Solaris/Linuxの場合
SolarisまたはLinuxでネーミングサービスを起動する場合には、環境変数(CLASSPATH)の設定が必要となります。
環境変数の設定方法については、“Solarisの場合”または“Linuxの場合”を参照してください。
ネーミングサービスをBシェルで起動した場合、ネーミングサービス起動後にexitコマンドでログアウトしてください。
システム管理者権限(root権限)を持つユーザがjavaコマンドを実行してください。
ネーミングサービスは、アプリケーションを実行している間サービスとして運用を続ける必要があります。
そのため、SolarisマシンまたはLinuxマシンではコマンドの最後に“&”を付けて、マシンの起動と同時にバックグラウンドで実行するように設定することを推奨します。
ネーミングサービスの停止方法は、起動方法によって異なります。
fgコマンドを実行し、バックグラウンドで動いているジョブをフォアグランドに戻します。
その後、Ctrlキー + Cで停止してください。
記述例を以下に示します。
fg 1
killコマンドで、ネーミングサービスのプロセスを終了させてください。
記述例を以下に示します。
kill -9 プロセスID
以下のコマンドを実行することで、ネーミングサービスのプロセスIDを調べることができます。
ps -ef | grep fujitsu.symfoware.
ネーミングサービスの使用時のエラーについて
ネーミングサービスが停止した状態でネーミングサービスを使用すると、以下のエラーメッセージが出力されます。アプリケーション実行時に以下のエラーメッセージが出力された場合、ネーミングサービスの状態を確認してください。
ネーミングサービスが起動しているか
ネーミングサービスのポート番号が正しいか
javax.naming.CommunicationException:SYMNameServer isn't being started.
起動中のJDBCネーミングサービスが使用しているポート番号を、以下の手順で確認してください。
各コマンドは、システム管理者権限(root権限)を持つユーザが実行してください。
以下のコマンドを実行し、ネーミングサービスのプロセスIDを取得します。
ps -ef | grep fujitsu.symfoware.
以下のコマンドを実行し、ネーミングサービスの状態を表示します。
netstat -a -p | grep (ネーミングサービスのプロセスID)
表示される“Local Address”の数字がポート番号ですので確認してください。
Windowsファイアウォール機能について
Windowsファイアウォール機能を有効にする場合、以下の手順でWebサーバのポート番号を有効にしてください。
以下のいずれかのサービスパックを適用してください。
Microsoft(R) Windows(R) XP Service Pack 2
Microsoft(R) Windows Server(R) 2003 Service Pack1以降
[スタート]メニューの[コントロールパネル]で[Windowsファイアウォール]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムおよびサービス]リストボックスで、3.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォール]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[Windowsファイアウォール]アイコンをダブルクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[システムとセキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
左側のウィンドウの[詳細設定]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面で、左側のウィンドウの[受信の規則]をクリックします。
右側のウィンドウの[新しい規則]をクリックします。
[新規の受信の規則ウィザード]画面の[ポート]を選択し、[次へ]をクリックします。
[TCP]および[特定のローカルポート]を選択し、ネーミングサービスで使用しているポート番号を指定した後、[次へ]をクリックします。ネーミングサービスのポート番号の初期値は、26600です。
[接続を許可する]を選択し、[次へ]をクリックします。
この規則を適用するプロファイルを選択し、[次へ]をクリックします。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定し、[完了]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面の中央のウィンドウの[受信の規則]で、追加した規則が有効になっていることを確認します。
[スタート]メニューの[コントロールパネル]をクリックします。
[セキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、26600です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[システムとセキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
左側のウィンドウの[詳細設定]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面で、左側のウィンドウの[受信の規則]をクリックします。
右側のウィンドウの[新しい規則]をクリックします。
[新規の受信の規則ウィザード]画面の[ポート]を選択し、[次へ]をクリックします。
[TCP]および[特定のローカルポート]を選択し、ネーミングサービスで使用しているポート番号を指定した後、[次へ]をクリックします。ネーミングサービスのポート番号の初期値は、26600です。
[接続を許可する]を選択し、[次へ]をクリックします。
この規則を適用するプロファイルを選択し、[次へ]をクリックします。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定し、[完了]をクリックします。
[セキュリティが強化された Windows ファイアウォール]画面の中央のウィンドウの[受信の規則]で、追加した規則が有効になっていることを確認します。