JNDIサービスに関する設定について説明します。
JNDIサービスの設定項目については全てMO化されています。項目の設定方法については「2.各サービスの属性の設定」を参照してください。
以下はMOで設定可能なJNDIサービス設定項目一覧です。
Dottedname : server.jndi-service
| 属性名 (attribute-name) |
説明 | 既定値 |
|---|---|---|
| bind-to-nameservice |
JNDIサーバのリファレンスをCosNamingサーバに登録するかどうかを指定します。 EJBを使用する場合や、プロバイダURLとしてcorbaname形式を指定する場合はtrueにする必要があります。 |
Web Editionの場合: false それ以外: true |
| cnsurl |
キャッシュ名前サーバを経由してJNDIサーバを使用する場合にキャッシュ名前サーバのURLのリストをカンマで区切って指定します。例 corbaname://host1:9829,corbaname://host2:9829 |
null |
| cns-interval | CNSと連携する場合に、起動した後でCNSとの通信を行う間隔(秒)を指定します。 | 60 |
| persistent | 名前情報のファイルへ永続化を行うかどうか指定します。 | false |
| persistent-backupinterval | 名前情報の永続化を行う場合、何回名前情報が更新されたら永続化ファイルをバックアップかを指定します。1の場合名前情報が更新されるたびにバックアップを行ないます。 | 1 |
| persistent-maxsize | 名前情報の永続化を行う場合に永続化ファイルの最大サイズ(Kbyte)を指定します。 | 0 |
| persistent-storedir | 名前情報をファイルに永続化する場合、永続化ファイルの格納先のディレクトリ名を指定します。 | ${INSTANE_ROOT}/ config/jndisp/store |
| persistent-storedir-backup | 名前情報をファイルに永続化する場合、バックアップ先のディレクトリ名を指定します。 | ${INSTANE_ROOT}/ config/jndisp/store |
| remote | 他のプロセスからJNDIにアクセスできるかどうかを指定します。HTTPセッションレプリケーション機能、リモートインタフェースを持つEJB、またはJMSを使用する場合、リモートアクセス可能である必要があります。リモートアクセス可能の場合、Object Brokerのサービス起動が必須となります。 | true |
| server-name | JNDIサーバをレプリケーションする場合、それぞれのJNDIサーバを識別するための名前を指定します。指定がない場合は 「ローカルホスト名:ドメイン名」 が使用されます。 ドメインが正常に停止できなかった後でこの値が変わるとJNDIサーバの動作が不正になる場合があります。 JNDIサーバが動作するホストが仮想ホスト名を持ち、その仮想ホスト名が変わる場合、この値を他のドメインと重ならない任意の固定文字列に設定してください。 |
null |
| startup-cosnaming-retry-interval | 起動時にCosNamingサーバとの通信リトライを行う間隔(秒)を指定します。 | 2 |
| startup-cns-retry-interval | CNSと連携する場合に起動時に、時にCNSとの通信リトライを行う間隔(秒)を指定します。 | 1 |
| url | 連携するCosNamingサーバのURLのリストをカンマで区切って指定します。例 corbaname://host1,corbaname://host2 |
null |
JNDIサービスはEJBと同じく、RMI-IIOPを使用して通信を行ないます。 このため通信用ポートなどの設定は組み込みIIOPリスナの設定で行ないます。組み込みIIOPリスナについてはEJBコンテナの設定方法を参照してください。
HTTPセッション情報のみをレプリケーションする場合は以下の手順は必要ありません。代わりにWebコンテナのsession-replication-jndi-url属性で設定します。詳しくはWebコンテナの設定方法を参照してください。
JNDIサーバの名前情報全体を複数ドメイン間でレプリケーションするためには、それぞれのドメインで同じCosNamingサーバと連携するように設定します。あらかじめJNDIサーバのbind-to-nameservice属性をtrueに設定しておく必要があります。
(1) CosNamingサーバと連携する場合
それぞれのドメインのURLの設定でレプリケーションするドメインのCosNamingサーバのURLを列挙します。
例えば server1のport1のCosNamingサーバの動作するドメインとserver2のport2のCosNamingサーバの動作するドメイン間でレプリケーションする場合、両方のドメインのurlの設定値を以下のように設定します。
corbaname://server:port1, corbaname://server:port2
(2) キャッシュ名前サーバと連携する場合
キャッシュ名前サーと連携する場合、urlにキャッシュ名前サーバでなくCosNamingサーバのポート番号を設定します。そしてcnsurlにキャッシュ名前サーバのURLを指定します。
レプリケーションを行なうと、JNDIサーバへのバインドなどの名前を更新する処理は上記のCosNamingサーバのURL に登録されている全てのJNDIサーバに対して行なわれます。あるドメインのJNDIサーバを後から起動した場合でも、他の動作中のJNDIサーバから登録情報を取得して自身の登録情報にマージします。
レプリケーション対象のJNDIサーバのリストはObject BrokerのCosNamingサーバに登録されますが、ドメインを停止するとCosNamingサーバ上のリストがクリアされます。
このためJNDIサーバをレプリケーションしている環境で、あるドメインを起動したまま別のレプリケーション対象のドメインを再起動した場合、再起動したドメインのCosNamingサーバに対して停止しなかったドメインのJNDIサーバを再登録する必要があります。
再登録するには統合運用管理ツールでJNDIサービスのみ再起動を行ないます。運用管理コマンドを使用する場合は以下のように行ないます。この操作を行なってもJNDIサーバに登録された情報は消えません。
otxadmin>invoke server.jndi-service.stop
otxadmin>invoke server.jndi-service.start