7.JNDIサービスに関する設定

JNDIサービスに関する設定について説明します。

7.1.JNDI設定項目・設定方法

JNDIサービスの設定項目については全てMO化されています。項目の設定方法については「2.各サービスの属性の設定」を参照してください。

7.2.JNDIサービス設定項目一覧

以下は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

7.3.JNDIサーバの通信リスナの設定

JNDIサービスはEJBと同じく、RMI-IIOPを使用して通信を行ないます。 このため通信用ポートなどの設定は組み込みIIOPリスナの設定で行ないます。組み込みIIOPリスナについてはEJBコンテナの設定方法を参照してください。

7.4.JNDIサーバをレプリケーションするための設定

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