Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド

Procedureアプリケーションクライアントコンテナ用に RMI-IIOP 負荷分散を設定する

この手順は、アプリケーションクライアントコンテナ (ACC) とともに RMI-IIOP 負荷分散とフェイルオーバーを使用するために必要な手順の概要を示しています。ACC の詳細については、『Sun GlassFish Enterprise Server 2.1 Developer’s Guide』「Developing Clients Using the ACC」を参照してください。

  1. install_dir/bin ディレクトリに移動します。

  2. package-appclient を実行します。

    このユーティリティーによって、appclient.jar ファイルが生成されます。package-appclient の詳細については、package-appclient(1M) を参照してください。

  3. appclient.jar ファイルを、クライアントを実行するマシンにコピーして展開します。

  4. asenv.conf または asenv.bat パス変数を編集して、そのマシン上の正しいディレクトリ値を参照するようにします。

    このファイルは、appclient-install-dir/config/ に格納されています。

    更新するパス変数の一覧については、package-appclient(1M)を参照してください。

  5. 必要に応じて、appclient スクリプト実行ファイルを作成します。

    たとえば、UNIX では chmod 700 を使用します。

  6. クラスタ内の少なくとも 2 つのインスタンスの IIOP リスナーポート番号を調べます。

    手順 7 で IIOP リスナーを端点として指定します。

    各インスタンスに対して、次のようにして IIOP リスナーポートを取得します。

    1. 管理コンソールのツリーコンポーネントで、「クラスタ」ノードを展開します。

    2. クラスタを展開します。

    3. クラスタ内のインスタンスを選択します。

    4. 右の区画で、「プロパティー」タブをクリックします。

    5. インスタンスに対する IIOP リスナーポートを記録します。

  7. sun-acc.xml ファイルに、少なくとも 2 つの target-server 要素を追加します。


    注 –

    クラスタ化機能は開発者プロファイルでは利用できません。プロファイルの詳細については、『Sun GlassFish Enterprise Server 2.1 管理ガイド』「プロファイル」を参照してください。


    手順 6 で取得した端点を使用します。

    アプリケーションクライアントが配備される Enterprise Server インスタンスがクラスタに参加する場合、ACC は、クラスタ内で現在アクティブなすべての IIOP 端点を自動的に検出します。ただし、端点の 1 つで障害が発生した場合に備えて、クライアントにはブートストラップ目的で少なくとも 2 つの端点を指定しておくことをお勧めします。

    target-server 要素は、負荷分散に使用される 1 つまたは複数の IIOP 端点を指定します。address 属性は IPv4 アドレスまたはホスト名であり、port 属性はポート番号を指定します。『Sun GlassFish Enterprise Server 2.1 Application Deployment Guide』「client-container」を参照してください。

    target-server 要素を使用する代わりに、endpoints プロパティーを次のように使用できます。


    jvmarg value = "-Dcom.sun.appserv.iiop.endpoints=host1:port1,host2:port2,..."
    
  8. 重み付きラウンドロビンによる負荷分散が必要な場合、次の手順を実行します。

    1. 各サーバーインスタンスの負荷分散の重みを設定します。


      asadmin set instance-name.lb-weight=weight
      
    2. sun-acc.xml で、ACC の com.sun.appserv.iiop.loadbalancingpolicy プロパティーを ic-based-weighted に設定します。

      …
      <client-container send-password="true">
        <property name="com.sun.appserv.iiop.loadbalancingpolicy" value="ic-based-weighed"/>
      …
  9. --retrieve オプションを使用してクライアントアプリケーションを配備し、クライアントの JAR ファイルを取得します。

    クライアントの JAR ファイルはクライアントマシンに置いたままにします。

    次に例を示します。


    asadmin deploy --user admin --passwordfile pw.txt --retrieve /my_dir myapp
    
  10. アプリケーションクライアントを、次のように実行します。

    appclient -client clientjar -name appname


例 9–1 RMI-IIOP 重み付きラウンドロビン負荷分散に使用する負荷分散の重みの設定

この例では、3 つのインスタンスを含むクラスタでの負荷分散の重みを、次の表に示すように設定します。

インスタンス名 

負荷分散の重み 

i1

100 

i2

200 

i3

300 

これらの負荷分散の重みを設定するための一連のコマンドは、次のようになります。


asadmin set i1.lb-weight=100
asadmin set i2.lb-weight=200
asadmin set i3.lb-weight=300

次の手順

フェイルオーバーをテストするには、クラスタ内の 1 つのインスタンスを停止し、アプリケーションが正常に動作するかどうかを調べます。また、クライアントアプリケーション内にブレークポイント (またはスリープ) を設定することもできます。

負荷分散をテストするには、複数のクライアントを使用し、すべての端点にわたって負荷がどのように分散されるかを調べます。