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 Server(R) 2008
ネーミングサービスをWindows(R)のサービスに登録することで、パソコンの起動と共に、ネーミングサービスを自動で起動し、バックグラウンドで動作させることができます。上記のOS上でネーミングサービスを起動する場合、ネーミングサービスをWindows(R)のサービスに登録することを推奨します。
Windows(R)サービスへの登録方法
Windows(R)サービスへの登録は、symjddefnsコマンドを使用します。登録されるサービス名は、Symfoware JDBC Naming Serviceです。登録手順は、以下のとおりです。
参照
symjddefnsコマンドの詳細については、“コマンドリファレンス”を参照してください。
コマンドプロンプトを起動します。
注意
Windows Server(R) 2008において、symjddefnsコマンドは、“管理者: コマンドプロンプト”から実行する必要があります。[コマンドプロンプト]を右クリックして表示されるメニューから[管理者として実行]を選択し、“管理者:コマンドプロンプト”を起動してください。
symjddefnsコマンドを実行して、Symfoware JDBC Naming ServiceをWindows(R)サービスに登録します。
以下の画面と同じ[ユーザー アカウント制御]ダイアログが表示された場合は、[続行]ボタンをクリックし、処理を継続してください。
JDKをC:\APW\JBK3\JDKにインストールしていて、ネーミングサービスのポート番号を52000にする場合
symjddefns -add -jdk C:\APW\JBK3\JDK -port 52000
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を指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムおよびサービス]リストボックスで、3.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォール]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[Windowsファイアウォール]アイコンをダブルクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[セキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
JDBCドライバをインストールしたマシンで以下のjavaコマンドを実行し、ネーミングサービスを起動します。
java com.fujitsu.symfoware.jdbc2.naming.SYMNameService [<port_no>]
ネーミングサービスの使用するポート番号を指定します。
省略した場合、10326になります。
10326がすでに使用されている場合、未使用のポート番号を指定して、ネーミングサービスを起動してください。
ポート番号は、5001~65535の範囲内で指定してください。
ポート番号が52000の場合
java com.fujitsu.symfoware.jdbc2.naming.SYMNameService 52000
注意
Solaris/Linuxの場合
SolarisまたはLinuxでネーミングサービスを起動する場合には、環境変数(CLASSPATH)の設定が必要となります。
環境変数の設定方法については、“Solaris(TM)の場合”または“Linuxの場合”を参照してください。
ネーミングサービスをBシェルで起動した場合、ネーミングサービス起動後にexitコマンドでログアウトしてください。
ネーミングサービスは、アプリケーションを実行している間サービスとして運用を続ける必要があります。
そのため、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.
Windowsファイアウォール機能について
Windowsファイアウォール機能を有効にする場合、以下の手順でWebサーバのポート番号を有効にしてください。
以下のいずれかのサービスパックを適用してください。
Microsoft(R) Windows(R) XP Service Pack 2
Microsoft(R) Windows Server(R) 2003 Service Pack1以降
[スタート]メニューの[コントロールパネル]で[Windowsファイアウォール]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムおよびサービス]リストボックスで、3.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォール]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[Windowsファイアウォール]アイコンをダブルクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。
[スタート]メニューの[コントロールパネル]をクリックします。
[セキュリティ]をクリックし、[Windowsファイアウォール]をクリックします。
[設定の変更]をクリックします。
[例外]タブの[ポートの追加]ボタンをクリックします。
[ポートの追加]画面で、以下の項目を設定します。
[名前]テキストボックスにSymfoware JDBC Naming Serviceを指定します。
[ポート番号]テキストボックスに、ネーミングサービスで使用しているポート番号を指定します。ネーミングサービスのポート番号の初期値は、10326です。
[TCP]ラジオボタンを選択します。
[ポートの追加]画面の[OK]をクリックします。
[例外]タブの[プログラムまたはポート]リストボックスで、5.で指定した内容が有効になっていることを確認します。
[Windowsファイアウォールの設定]画面の[OK]をクリックします。