RMI-IIOP 負荷分散とフェイルオーバーは、アプリケーションクライアントコンテナ (ACC) で動作しているアプリケーション用に設定できます。重み付きラウンドロビンによる負荷分散もサポートされています。
この手順は、アプリケーションクライアントコンテナ (ACC) とともに RMI-IIOP 負荷分散とフェイルオーバーを使用するために必要な手順の概要を示しています。ACC の詳細については、『Sun GlassFish Communications Server 1.5 Developer’s Guide』の「Developing Clients Using the ACC」を参照してください。
install_dir/bin ディレクトリに移動します。
package-appclient を実行します。
このユーティリティーによって、appclient.jar ファイルが生成されます。package-appclient の詳細については、package-appclient(1M) を参照してください。
appclient.jar ファイルを、クライアントを実行するマシンにコピーして展開します。
asenv.conf または asenv.bat パス変数を編集して、そのマシン上の正しいディレクトリ値を参照するようにします。
このファイルは、appclient-install-dir/config/ に格納されています。
更新するパス変数の一覧については、package-appclient(1M)を参照してください。
必要に応じて、appclient スクリプト実行ファイルを作成します。
たとえば、UNIX では chmod 700 を使用します。
クラスタ内の少なくとも 2 つのインスタンスの IIOP リスナーポート番号を調べます。
手順 7 で IIOP リスナーを端点として指定します。
各インスタンスに対して、次のようにして IIOP リスナーポートを取得します。
sun-acc.xml ファイルに、少なくとも 2 つの target-server 要素を追加します。
クラスタ化機能は開発者プロファイルでは利用できません。プロファイルの詳細については、『Sun GlassFish Communications Server 1.5 管理ガイド』の「プロファイル」を参照してください。
手順 6 で取得した端点を使用します。
アプリケーションクライアントが配備される Communications Server インスタンスがクラスタに参加する場合、ACC は、クラスタ内で現在アクティブなすべての IIOP 端点を自動的に検出します。ただし、端点の 1 つで障害が発生した場合に備えて、クライアントにはブートストラップ目的で少なくとも 2 つの端点を指定しておくことをお勧めします。
target-server 要素は、負荷分散に使用される 1 つまたは複数の IIOP 端点を指定します。address 属性は IPv4 アドレスまたはホスト名であり、port 属性はポート番号を指定します。『Sun GlassFish Communications Server 1.5 Application Deployment Guide』の「client-container」を参照してください。
target-server 要素を使用する代わりに、endpoints プロパティーを次のように使用できます。
jvmarg value = "-Dcom.sun.appserv.iiop.endpoints=host1:port1,host2:port2,..." |
重み付きラウンドロビンによる負荷分散が必要な場合、次の手順を実行します。
--retrieve オプションを使用してクライアントアプリケーションを配備し、クライアントの JAR ファイルを取得します。
クライアントの JAR ファイルはクライアントマシンに置いたままにします。
次に例を示します。
asadmin deploy --user admin --passwordfile pw.txt --retrieve /my_dir myapp |
アプリケーションクライアントを、次のように実行します。
appclient -client clientjar -name appname
この例では、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 つのインスタンスを停止し、アプリケーションが正常に動作するかどうかを調べます。また、クライアントアプリケーション内にブレークポイント (またはスリープ) を設定することもできます。
負荷分散をテストするには、複数のクライアントを使用し、すべての端点にわたって負荷がどのように分散されるかを調べます。