2.5.3 ラウンドロビン検索をするために必要な設定
(1) システムプロパティの設定によるグループとグループに属するCORBAネーミングサービスのルート位置の特定
ラウンドロビン検索を実行する場合,システムプロパティに,ラウンドロビン検索の対象になる論理ネーミングサービスのグループと,グループに属するネーミングサービスのルート位置を指定します。また,InitialContextFactoryの実装を委譲しているクラスとして,java.naming.factory.initial=com.hitachi.software.ejb.jndi.GroupContextFactoryを指定する必要があります。
システムプロパティは,ラウンドロビン検索機能を利用するアプリケーションの種類ごとに,次の個所に設定方法が異なります。
(2) J2EEサーバで動作するJ2EEアプリケーション(Enterprise Beanまたはサーブレット),またはWebコンテナサーバで動作するWebアプリケーション(サーブレット)の場合
J2EEサーバまたはWebコンテナサーバのプロパティをカスタマイズして設定します。設定は,簡易構築定義ファイルの,J2EEサーバ用のユーザプロパティに設定します。
ラウンドロビン検索をするための定義は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に指定します。簡易構築定義ファイルでのラウンドロビン検索をするための定義について次の表に示します。
表2-17 簡易構築定義ファイルでのラウンドロビン検索をするための定義
指定するパラメタ | 設定内容 |
---|
ejbserver.jndi.namingservice.group.list | CORBAネーミングサービスのグループを指定します。 |
ejbserver.jndi.namingservice.group.<Specify group name>.providerurls | 各グループに属する,CORBAネーミングサービスのルート位置を指定します。 |
java.naming.factory.initial | InitialContextFactoryの実装をデレゲートしているクラスを指定します。 |
なお,ラウンドロビン検索は,ユーザ指定名前空間機能を使用していることが前提になります。ユーザ指定名前空間機能を使用する場合,サーバ管理コマンドの動作設定のカスタマイズと,J2EEアプリケーションのプロパティの定義が必要です。設定方法については,「2.4.7 実行環境での設定」および「2.4.5 Enterprise Beanの別名の設定」を参照してください。
(3) J2EEサーバ,Webコンテナサーバ以外で動作するEJBクライアントアプリケーションの場合
次のどちらかの方法で設定します。
- EJBクライアントアプリケーション起動時にプロパティとして設定する。
- System.setPropertyメソッドを使用してアプリケーション内で設定する。
なお,EJBクライアントアプリケーションのプロパティの設定方法は,EJBクライアントアプリケーションの開始に使用するコマンドによって,EJBクライアントアプリケーションのプロパティの設定方法が異なります。EJBクライアントアプリケーションのプロパティの設定方法および指定例を説明します。
(a) EJBクライアントアプリケーションのプロパティの設定方法
プロパティの設定方法は,cjclstartapコマンドを使用する場合とvbjコマンドを使用する場合で異なります。
- cjclstartapコマンドの場合
cjclstartapコマンドを使用する場合は,EJBクライアントアプリケーションのプロパティファイル(usrconf.properties)でプロパティを設定します。なお,指定できるプロパティについては,「(2) J2EEサーバで動作するJ2EEアプリケーション(Enterprise Beanまたはサーブレット),またはWebコンテナサーバで動作するWebアプリケーション(サーブレット)の場合」を参照してください。
- vbjコマンドの場合
vbjコマンドを使用する場合は,バッチファイル/シェルスクリプトファイル,またはコマンドの引数で,プロパティを設定します。
(b) プロパティの指定例
指定例を次に示します。この例は,プロパティをusrconf.propertiesで指定する場合の指定例です。なお,それぞれのキーの詳細については,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「3.3 usrconf.properties(バッチサーバ用ユーザプロパティファイル)」またはマニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「15.3 usrconf.properties(Javaアプリケーション用ユーザプロパティファイル)」を参照してください。
# 論理ネーミングサービスの構成を定義
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ネーミングサービスが検索の対象になります。
- なお,「(4) InitialContext生成時の引数指定による検索対象グループの選択」に示す方法でInitialContext生成時の引数にjava.naming.factory.initialキーを設定する場合,システムプロパティでこのキーに値を指定する必要はありません。
(4) 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ネーミングサービスが検索の対象になります。
(5) グループ名の命名規則
グループ名に使用できる文字を次に示します。
- 英数字(A~Z,a~z,0~9)
- アンダースコア(_)
なお,グループ名は,論理ネーミングサービス内で一意となる名称にしてください。
(6) プロパティでの設定内容
EJBクライアントアプリケーションのプロパティは,JavaアプリケーションからEnterprise Beanを呼び出す場合に使用されます。また,WebコンテナサーバからEnterprise Beanを呼び出す場合は,Enterprise Beanを呼び出す場合に必要なプロパティをカスタマイズする必要があります。J2EEアプリケーションの内容に応じて,必要なプロパティを設定してください。設定できるプロパティについては,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。
- プロパティで設定できる内容の一例
- EJBクライアントアプリケーションのログの設定
ejbserver.client.logで始まるキーやejbserver.loggerで始まるキーなどで,システムが出力するシステムログと,EJBクライアントアプリケーションが出力するユーザログの出力先やログレベルなどを変更できます。詳細については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 拡張編」の「2.5.2 実行環境での設定(バッチサーバの設定)」を参照してください。
- EJBクライアントアプリケーションのトランザクションの設定
ejbserver.client.transactionで始まるキーで,EJBクライアントアプリケーションでトランザクションを使用するかどうか,トランザクションサービスが使用するクライアント名などを指定できます。なお,uCosminexus Clientを使用してEJBクライアント環境を構築する場合は,EJBクライアントアプリケーションのトランザクションは使用できません。詳細については,「3.20 EJBクライアントアプリケーションでトランザクションを開始する場合の注意事項」を参照してください。
- EJBのリモートインタフェースでの通信障害発生時のEJBクライアントの動作
ejbserver.container.rebindpolicyキーに,EJBクライアント側でのコネクションの再接続動作とリクエストの再送動作を指定できます。
- EJBクライアントアプリケーションからラウンドロビン検索を実行する設定
ejbserver.jndi.namingservice.group.listキー,ejbserver.jndi.namingservice.group.<Specify group name>.providerurlsキーおよびjava.naming.factory.initialキーに,CORBAネーミングサービスのグループ,各グループに属するCORBAネーミングサービスのルート位置,およびInitialContextFactoryの実装をデレゲートしているクラスを指定できます。なお,ラウンドロビン検索は,J2EEサーバのサーバ管理コマンドのカスタマイズでユーザ指定名前空間機能を使用する設定をしている場合に有効になります。
- EJBクライアントアプリケーションからCTMへのリクエストの優先度の設定
ejbserver.client.ctm.RequestPriorityキーに,EJBクライアントアプリケーションからCTMに送信するリクエストの優先度を設定できます。
(7) コマンドによって指定の要否が異なるプロパティ(EJBクライアントアプリケーションの場合)
ここでは,EJBクライアントアプリケーションのコマンド(vbjコマンド)によって指定の要否が異なるプロパティについて説明します。EJBクライアントアプリケーションのコマンドによって指定の要否が異なるプロパティのキーを次の表に示します。
表2-18 EJBクライアントアプリケーションのコマンドによって指定の要否が異なるプロパティのキー
プロパティのキー | 種別 | コマンド |
---|
cjclstartap | vbj |
---|
org.omg.CORBA.ORBClass | 固定 | - | - |
org.omg.CORBA.ORBSingletonClass | 固定 | - | - |
javax.rmi.CORBA.UtilClass | 固定 | - | ○ |
javax.rmi.CORBA.StubClass | 固定 | - | - |
javax.rmi.CORBA.PortableRemoteObjectClass | 固定 | - | ○ |
java.endorsed.dirs | 可変 | - | - |
- (凡例)
- 固定:該当するキーに対する値は固定で,指定する必要がある
- 可変:システムの実行環境に従って値を指定する必要がある
- ○:コマンドにキーを指定する必要がある
- -:コマンドにキーを指定する必要がない