ここでは、Session Registry Clientの設定について説明します。
構成
Session Registry ServerとSession Registry Clientの構成例を以下に示します。
この構成の場合、IJServerクラスタとSession Registry Serverがそれぞれ別々のマシンで運用されていますので、IJServerクラスタが動作しているマシンA、マシンBのどちらかがダウンした場合でも継続してWebアプリケーションを運用することができます。ただし、Session Registry Serverが動作しているマシンCがダウンしている間はセッションリカバリ機能が使用できません。(セッションのバックアップ/リカバリはできませんが、通常の業務継続は可能です。)
そのため、この構成で運用する場合、以下のように費用面での欠点があります。
Session Registry Server用に1台マシンを用意する必要があります。
Session Registry Serverには信頼性の高いマシンを使用する必要があります。
この構成の場合、IJServerクラスタの1つのサーバーインスタンスがダウンしている間は、ダウンしていないサーバーインスタンスにセッションがリカバリされるため、サーバーインスタンスがダウンしている間もWebアプリケーションを継続して運用することができます。
この構成の場合、IJServerクラスタが1つのマシンで運用されているため、マシンがダウンした場合はWebアプリケーションを継続して運用することはできません。
設定方法
設定方法の説明で使用する例を以下に示します。
マシンAの例
項目 | 値 | |
---|---|---|
マシンのIPアドレス | 192.0.2.2 | |
IJServerクラスタ名 | IJServer001 | |
サーバーインスタンス名 | IJServer001_instance001 | |
制御用HTTPリスナーのポート番号 | 15000 | |
サーバーインスタンス名 | IJServer001_instance002 | |
制御用HTTPリスナーのポート番号 | 15001 |
マシンBの説明は、「4.10.2 Session Registry Serverの設定」を参照してください。
Session Registry Clientとして使用する場合は、通常のIJServerクラスタの設定に加えて、以下の定義項目と、ユーザアプリケーションの定義が必要です。
定義項目
項目名 | 設定箇所 | 設定内容 |
---|---|---|
クラスパス | IJServerクラスタのJavaVMオプション | [プロパティ名] [値]
|
ライフサイクルモジュールのクラス名 | ライフサイクルモジュール | [値] |
セッションのバックアップ先Session Registry Serverのアドレス | ライフサイクルモジュールのプロパティ | [プロパティ名] [値] |
セッションのバックアップ先Session Registry Serverのポート | [プロパティ名] [値] | |
バックアップの契機 | [プロパティ名] [値] | |
バックアップの間隔 | [プロパティ名] [値] | |
Session Registry Serverからの応答待ち時間 | [プロパティ名] [値] | |
セッションを使用しないURLの末尾 | [プロパティ名] [値] | |
制御用Valve | 仮想サーバー(server)のプロパティ | [プロパティ名] [値] |
制御用仮想サーバー名 | 制御用仮想サーバー | [値] |
制御用仮想サーバーが要求を受け付けるクライアントのアドレス | 制御用仮想サーバーのプロパティ | [プロパティ名] [値] |
制御用HTTPリスナーのポート番号 | IJServerクラスタの設定のシステムプロパティ | [プロパティ名] [値] デフォルト値:設定されていないため、サーバーインスタンスごとに一意になるように、IJServerクラスタの設定のデフォルト値と、サーバーインスタンスのオーバーライド値を設定します。 |
制御用HTTPリスナーのポート番号 | サーバーインスタンスのシステムプロパティ | |
制御用HTTPリスナーの名前 | 制御用HTTPリスナー | [値] |
制御用HTTPリスナーのWebコンテナへアクセスする運用形態 | 制御用HTTPリスナー | [プロパティ名] [値] 詳細については「6.8.3 HTTPサービスの定義項目」を参照してください。 |
可用性サービスの有効化 | IJServerクラスタ | [プロパティ名] [値] |
Webコンテナの可用性の有効化 | IJServerクラスタ | [プロパティ名] [値] |
注)Session Registry ServerとWebコンテナの間にファイアウォールを設置する場合、ここで設定したポート番号のHTTP通信が許可されるように、ファイアウォールの設定を行う必要があります。
deployment descriptorの設定
設定するdeployment descriptor | 設定するタグ |
---|---|
Web application deployment descriptor (web.xml) | <distributable/> |
Interstage Web application deployment descriptor (sun-web.xml) | <session-config> |
設定はasadminコマンド使用して行います。asadminコマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「asadmin」を参照してください。
クラスパスを設定します。
Session Registry Clientの動作に必要なモジュールをクラスパスに追加します。すでにクラスパスを設定している場合には、設定済のクラスパスも含めて同時に指定してください。
例
asadmin set IJServer001.java-config.classpath-suffix=C:\Interstage\F3FMjssrc\lib\jssrc-isjee.jar |
asadmin set IJServer001.java-config.classpath-suffix=/opt/FJSVjssrc/lib/jssrc-isjee.jar |
ライフサイクルモジュールを作成します。なお、ライフサイクルモジュールの定義名(以下例の src_module001)は任意の名前で指定可能です。
例
asadmin create-lifecycle-module --target IJServer001 --classname com.fujitsu.interstage.jservlet.sessionrecovery.client.startup.ISJE5Starter --property srsAddress=192.0.2.1:srsPort=5678 src_module001 |
制御用Valveを追加します。
例
asadmin set IJServer001.http-service.virtual-server.server.property.valve_sr=com.fujitsu.interstage.jservlet.sessionrecovery.client.core.isje5.ISJE5SessionRegistryValve |
制御用仮想サーバーを作成します。
asadmin create-virtual-serverサブコマンドを使用します。作成した仮想サーバーに対し、アクセスを許可するIPアドレスを正規表現で指定します。なお、誤って制御用仮想サーバーを作成してしまった場合には、IJServerクラスタを作成し直してください。
例
asadmin create-virtual-server --target IJServer001 __sessionrecovery asadmin set IJServer001.http-service.virtual-server.__sessionrecovery.property.allowRemoteAddress=192\.0\.2\.1 |
asadmin create-virtual-server --target IJServer001 __sessionrecovery asadmin set IJServer001.http-service.virtual-server.__sessionrecovery.property.allowRemoteAddress=192\\.0\\.2\\.1 |
制御用HTTPリスナーのポート番号を設定します。
IJServerクラスタの設定のデフォルト値とサーバーインスタンスごとのオーバーライド値を設定します。値はサーバーインスタンスごとに異なる値を指定してください。
例
asadmin create-system-properties --target IJServer001-config SESSIONRECOVERY_PORT=15000 asadmin create-system-properties --target IJServer001_instance002 SESSIONRECOVERY_PORT=15001 |
注意
IJServerクラスタに対してシステムプロパティを定義する際は、1行目の例のように、設定名(IJServerクラスタ名-config)を指定してください。
制御用HTTPリスナーを作成します。
asadmin create-http-listenerサブコマンドを使用します。作成したHTTPリスナーが受け付けるリクエストはWebサーバを経由しないため、Webコンテナへアクセスする運用形態を“direct”にします。なお、誤って制御用HTTPリスナーを作成してしまった場合には、IJServerクラスタを作成し直してください。
例
asadmin create-http-listener --listeneraddress 0.0.0.0 --listenerport ${SESSIONRECOVERY_PORT} --defaultvs __sessionrecovery --target IJServer001 __sr-listener |
asadmin create-http-listener --listeneraddress 0.0.0.0 --listenerport \$\{SESSIONRECOVERY_PORT\} --defaultvs __sessionrecovery --target IJServer001 __sr-listener |
制御用アプリケーションを配備します。
例
asadmin deploydir --virtualservers __sessionrecovery --target IJServer001 C:\Interstage\F3FMjssrc\webapps\srcapl-isjee |
asadmin deploydir --virtualservers __sessionrecovery --target IJServer001 /opt/FJSVjssrc/webapps/srcapl-isjee |
可用性サービスとWebコンテナの可用性を有効にします。
例
asadmin set IJServer001.availability-service.availability-enabled=true asadmin set IJServer001.web-container-availability.availability-enabled=true |
ユーザアプリケーションのWeb application deployment descriptor (web.xml)を設定します。
web.xmlに以下の記述を追加してください。
<distributable/> |
ユーザアプリケーションのInterstage Web application deployment descriptor (sun-web.xml)を設定します。
sun-web.xmlに以下の記述を追加してください。
<session-config> <session-manager persistence-type="isjee-src"/> </session-config> |
ユーザアプリケーションを配備します。
ユーザアプリケーションでセッションリカバリ機能を使用する場合、アプリケーションの配備はasadminコマンドのdeployサブコマンドを使用し、--availabilityenabledオプションと--virtualserversオプションを指定します。Interstage Java EE管理コンソールからは、セッションリカバリ機能を使用するユーザアプリケーションを配備できません。
注意
IJServerクラスタ内にセッションリカバリを使用するアプリケーションがある場合、同じIJServerクラスタ内のセッションリカバリを使用しないアプリケーションについても配備時に--virtualserversオプションで、配備先の仮想サーバー「server」を指定する必要があります。
例
asadmin deploy --availabilityenabled=true --virtualservers=server --target IJServer001 C:/sample.war |
asadmin deploy --availabilityenabled=true --virtualservers=server --target IJServer001 /home/sample.war |
ディレクトリ配備を行う場合は、asadminコマンドのdeploydirサブコマンドを使用し、--availabilityenabledオプションと--virtualserversオプションを指定します。
例
asadmin deploydir --availabilityenabled=true --virtualservers=server --target IJServer001 C:/sample |
asadmin deploydir --availabilityenabled=true --virtualservers=server --target IJServer001 /home/sample |
Session Registry Clientとして使用するIJServerクラスタに、配備済みユーザアプリケーションを展開する場合は、asadminコマンドのcreate-application-refサブコマンドを使用し、--virtualserversオプションを指定します。
例
asadmin create-application-ref --virtualservers=server --target IJServer001 sample |
asadmin create-application-ref --virtualservers=server --target IJServer001 sample |