Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

8.4.3 ラウンドロビン検索をするために必要な設定

ラウンドロビン検索をするために必要な設定とグループ名の命名規則などについて説明します。

ラウンドロビン検索をする場合,次の設定が必要です。

ラウンドロビン検索機能を使用するためには,システムプロパティに設定します。なお,InitialContextFactoryの実装を委譲しているクラスについては,システムプロパティの設定に加えて,各アプリケーションのInitialContext生成時に引数で指定することもできます。また,InitialContext生成時の引数では,システムプロパティに指定した論理ネーミングサービスのグループのうち,特定のネーミングサービスを選択して指定することもできます。

なお,システムプロパティだけで設定している場合は,特定のグループを指定したラウンドロビン検索はできません。論理ネーミングサービス上にある全グループのネーミングサービスが検索の対象となります。

ここでは,それぞれの設定方法の概要について説明します。

<この項の構成>
(1) システムプロパティの設定によるグループとグループに属するCORBAネーミングサービスのルート位置の特定
(2) InitialContext生成時の引数指定による検索対象グループの選択
(3) グループ名の命名規則
(4) 推奨する設定

(1) システムプロパティの設定によるグループとグループに属するCORBAネーミングサービスのルート位置の特定

ラウンドロビン検索を実行する場合,システムプロパティに,ラウンドロビン検索の対象になる論理ネーミングサービスのグループと,グループに属するネーミングサービスのルート位置を指定します。また,InitialContextFactoryの実装を委譲しているクラスとして,java.naming.factory.initial=com.hitachi.software.ejb.jndi.GroupContextFactoryを指定する必要があります。

システムプロパティは,ラウンドロビン検索機能を利用するアプリケーションの種類ごとに,次の個所に設定します。

指定例を次に示します。この例は,プロパティをusrconf.propertiesで指定する場合の指定例です。なお,それぞれのキーの詳細については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。

  
# 論理ネーミングサービスの構成を定義
ejbserver.jndi.namingservice.group.list=g1;g2;g3
ejbserver.jndi.namingservice.group.g1.providerurls=corbaname::hostA:900;corbaname::hostB:900
ejbserver.jndi.namingservice.group.g2.providerurls=corbaname::hostD:700;corbaname::hostE:700
ejbserver.jndi.namingservice.group.g3.providerurls=corbaname::hostF:800;corbaname::hostG:800
# InitialContextFactoryの実装を委譲するクラスを指定
java.naming.factory.initial=com.hitachi.software.ejb.jndi.GroupContextFactory
  :

指定例の中のejbserver.jndi.namingservice.group.listキー,ejbserver.jndi.namingservice.group.<Specify group name>.providerurlsキー,およびjava.naming.factory.initialキーには,それぞれ次の内容を指定します。

ejbserver.jndi.namingservice.group.listキー
ラウンドロビン検索をする場合に,検索対象になる論理ネーミングサービスのグループを定義します。指定する各グループ名は,論理ネーミング内で一意に識別できる名称にします。

ejbserver.jndi.namingservice.group.<Specify group name>.providerurlsキー
各グループに属するネーミングサービスのルート位置をプロバイダURLで指定します。<Specify group name>には,ejbserver.jndi.namingservice.group.list内に指定したグループ名を指定します。

java.naming.factory.initialキー
InitialContextFactoryの実装を委譲しているクラスを指定します。
java.naming.factory.initialキーに,"com.hitachi.software.ejb.jndi.GroupContextFactory"を指定した場合,ラウンドロビン検索が実施されます。指定しなかった場合,J2EEサーバがネーミングサービスとして利用するCORBAネーミングサービスが検索の対象になります。
なお,「(2) InitialContext生成時の引数指定による検索対象グループの選択」に示す方法でInitialContext生成時の引数にjava.naming.factory.initialキーを設定する場合,システムプロパティでこのキーに値を指定する必要はありません。

(2) InitialContext生成時の引数指定による検索対象グループの選択

ラウンドロビン検索を実行する設定になっている場合に,クライアントアプリケーション内でInitialContext生成時の引数に特定のグループを指定することによって,ラウンドロビン対象でのルックアップ対象になるグループを選択できます。なお,InitialContext生成時の引数の指定は任意です。

指定例を次に示します。

     :
Hashtable env = new Hashtable();
env.put("ejbserver.jndi.namingservice.groupname", "g1");
env.put("java.naming.factory.initial",
                 "com.hitachi.software.ejb.jndi.GroupContextFactory");
InitialContext ic = new InitialContext(env);
     :
 

指定例の中のejbserver.jndi.namingservice.groupnameキーおよびjava.naming.factory.initialキーには,それぞれ次の内容を指定します。

ejbserver.jndi.namingservice.groupnameキー
検索対象となるグループ名を「gl」部分に指定します。グループ名は,システムプロパティ(usrconf.propertiesのejbserver.jndi.namingservice.group.listキー)で,すでに定義されているものを指定してください。なお,ejbserver.jndi.namingservice.groupnameキーにデフォルト値はありません。指定しなかった場合,システムプロパティで設定した,すべてのグループを検索の対象とします。

java.naming.factory.initialキー
InitialContextFactoryの実装を委譲しているクラスを指定します。java.naming.factory.initialキーに,"com.hitachi.software.ejb.jndi.GroupContextFactory"を指定した場合,ラウンドロビン検索が実施されます。システムプロパティのjava.naming.factory.initialキーの指定を省略した場合に,引数でこのキーの指定を省略すると,ejbserver.jndi.namingservice.groupnameキーで指定したグループの検索は実施されないで,J2EEサーバがネーミングサービスとして利用するCORBAネーミングサービスが検索の対象になります。

(3) グループ名の命名規則

グループ名に使用できる文字を次に示します。

なお,グループ名は,論理ネーミングサービス内で一意となる名称にしてください。

(4) 推奨する設定

ラウンドロビン検索機能を使用するときには,CORBAネーミングサービスの監視機能が持つ,無効なキャッシュ領域を定期的にクリアする機能を利用することを推奨します。クライアントのシステムプロパティ設定例を次に示します。

クライアントのシステムプロパティ設定例
  :
# キャッシュの設定
ejbserver.jndi.cache=on
ejbserver.jndi.cache.interval=60
ejbserver.jndi.cache.interval.clear.option=check
 
# 論理ネーミングサービスの構成を定義
ejbserver.jndi.namingservice.group.list=g1;g2;g3
ejbserver.jndi.namingservice.group.g1.providerurls= corbaname::hostA:900;corbaname::hostB:900;corbaname::hostC:900
ejbserver.jndi.namingservice.group.g2.providerurls= 
             corbaname::hostD:700;corbaname::hostE:700
ejbserver.jndi.namingservice.group.g3.providerurls=
  corbaname::hostF:800;corbaname::hostG:800;corbaname::hostH:800
  :