Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


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

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

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

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

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

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

〈この項の構成〉

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

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

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

(2) J2EEサーバで動作するJ2EEアプリケーション(Enterprise Beanまたはサーブレット)の場合

J2EEサーバのプロパティをカスタマイズして設定します。設定は,簡易構築定義ファイルの,J2EEサーバ用のユーザプロパティに設定します。

ラウンドロビン検索をするための定義は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に指定します。簡易構築定義ファイルでのラウンドロビン検索をするための定義について次の表に示します。

表2‒31 簡易構築定義ファイルでのラウンドロビン検索をするための定義

指定するパラメタ

設定内容

ejbserver.jndi.namingservice.group.list

CORBAネーミングサービスのグループを指定します。

ejbserver.jndi.namingservice.group.<Specify group name>.providerurls

各グループに属する,CORBAネーミングサービスのルート位置を指定します。

java.naming.factory.initial

InitialContextFactoryの実装をデレゲートしているクラスを指定します。

なお,ラウンドロビン検索は,ユーザ指定名前空間機能を使用していることが前提になります。ユーザ指定名前空間機能を使用する場合,サーバ管理コマンドの動作設定のカスタマイズと,J2EEアプリケーションのプロパティの定義が必要です。設定方法については,「2.6.7 実行環境での設定」および「2.6.5 Enterprise Beanの別名の設定」を参照してください。

(3) J2EEサーバ以外で動作するEJBクライアントアプリケーションの場合

次のどちらかの方法で設定します。

なお,EJBクライアントアプリケーションのプロパティの設定方法は,EJBクライアントアプリケーションの開始に使用するコマンドによって,EJBクライアントアプリケーションのプロパティの設定方法が異なります。EJBクライアントアプリケーションのプロパティの設定方法および指定例を説明します。

(a) EJBクライアントアプリケーションのプロパティの設定方法

プロパティの設定方法は,cjclstartapコマンドを使用する場合とvbjコマンドを使用する場合で異なります。

  • cjclstartapコマンドの場合

    cjclstartapコマンドを使用する場合は,EJBクライアントアプリケーションのプロパティファイル(usrconf.properties)でプロパティを設定します。なお,指定できるプロパティについては,「(2) J2EEサーバで動作するJ2EEアプリケーション(Enterprise Beanまたはサーブレット)の場合」を参照してください。

  • vbjコマンドの場合

    vbjコマンドを使用する場合は,バッチファイル/シェルスクリプトファイル,またはコマンドの引数で,プロパティを設定します。

(b) プロパティの指定例

指定例を次に示します。この例は,プロパティをusrconf.propertiesで指定する場合の指定例です。なお,それぞれのキーの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「12.2.2 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) グループ名の命名規則

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

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

(6) プロパティでの設定内容

EJBクライアントアプリケーションのプロパティは,JavaアプリケーションからEnterprise Beanを呼び出す場合に使用されます。J2EEアプリケーションの内容に応じて,必要なプロパティを設定してください。設定できるプロパティについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。

プロパティで設定できる内容の一例
  • EJBクライアントアプリケーションのログの設定

    ejbserver.client.logで始まるキーやejbserver.loggerで始まるキーなどで,システムが出力するシステムログと,EJBクライアントアプリケーションが出力するユーザログの出力先やログレベルなどを変更できます。システムログについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.8 EJBクライアントアプリケーションのシステムログ出力」,ユーザログについては,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「8. アプリケーションのユーザログ出力」を参照してください。

  • EJBクライアントアプリケーションのトランザクションの設定

    ejbserver.client.transactionで始まるキーで,EJBクライアントアプリケーションでトランザクションを使用するかどうか,トランザクションサービスが使用するクライアント名などを指定できます。なお,Clientを使用してEJBクライアント環境を構築する場合は,EJBクライアントアプリケーションのトランザクションは使用できません。詳細については,「3.19 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‒32 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

可変

(凡例)

固定:該当するキーに対する値は固定で,指定する必要がある

可変:システムの実行環境に従って値を指定する必要がある

○:コマンドにキーを指定する必要がある

−:コマンドにキーを指定する必要がない