ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Java EE運用ガイド
FUJITSU Software

4.10.3 Session Registry Clientの設定

ここでは、Session Registry Clientの設定について説明します。

構成

Session Registry ServerとSession Registry Clientの構成例を以下に示します。

複数のマシンで1つのSession Registry Serverを使用する場合

この構成の場合、IJServerクラスタとSession Registry Serverがそれぞれ別々のマシンで運用されていますので、IJServerクラスタが動作しているマシンA、マシンBのどちらかがダウンした場合でも継続してWebアプリケーションを運用することができます。ただし、Session Registry Serverが動作しているマシンCがダウンしている間はセッションリカバリ機能が使用できません。(セッションのバックアップ/リカバリはできませんが、通常の業務継続は可能です。)
そのため、この構成で運用する場合、以下のように費用面での欠点があります。

  • Session Registry Server用に1台マシンを用意する必要があります。

  • Session Registry Serverには信頼性の高いマシンを使用する必要があります。



IJServerクラスタ複数サーバーインスタンスで運用する場合

この構成の場合、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オプション

[プロパティ名]
java-config.classpath-suffix

[値]
クラスパスのサフィックスに以下を指定


C:\Interstage\F3FMjssrc\lib\jssrc-isjee.jar


/opt/FJSVjssrc/lib/jssrc-isjee.jar

ライフサイクルモジュールのクラス名

ライフサイクルモジュール

[値]
com.fujitsu.interstage.jservlet.sessionrecovery.client.startup.ISJE5Starter
(固定値)

セッションのバックアップ先Session Registry Serverのアドレス

ライフサイクルモジュールのプロパティ

[プロパティ名]
srsAddress

[値]
Session Registry ServerのIPアドレス

セッションのバックアップ先Session Registry Serverのポート

[プロパティ名]
srsPort

[値]
Session Registry ServerのHTTP_LISTENER_PORTで設定したポート

バックアップの契機

[プロパティ名]
backupMode

[値]
interval:一定間隔
request:リクエスト終了時
デフォルト値:interval

バックアップの間隔

[プロパティ名]
backupInterval

[値]
1~2147483647(秒)
デフォルト値:5

Session Registry Serverからの応答待ち時間

[プロパティ名]
responseWaitTime

[値]
1~86400(秒)
デフォルト値:440

セッションを使用しないURLの末尾

[プロパティ名]
excludeExt

[値]
拡張子。半角英数字と‘_’(アンダーバー)が指定可能。複数指定する場合のセパレータはセミコロン(;)

制御用Valve

仮想サーバー(server)のプロパティ

[プロパティ名]
valve_sr

[値]
com.fujitsu.interstage.jservlet.sessionrecovery.client.core.isje5.ISJE5SessionRegistryValve(固定値)

制御用仮想サーバー名

制御用仮想サーバー

[値]
__sessionrecovery(固定値)

制御用仮想サーバーが要求を受け付けるクライアントのアドレス

制御用仮想サーバーのプロパティ

[プロパティ名]
allowRemoteAddress

[値]
IPアドレスを正規表現で指定
詳細については「6.8.3 HTTPサービスの定義項目」を参照してください。

制御用HTTPリスナーのポート番号
(IJServerクラスタの設定のデフォルト値)(注)

IJServerクラスタの設定のシステムプロパティ

[プロパティ名]
SESSIONRECOVERY_PORT

[値]
1~65535
ただし、1~1023はWell Knownポートのため、使用しないでください。

デフォルト値:設定されていないため、サーバーインスタンスごとに一意になるように、IJServerクラスタの設定のデフォルト値と、サーバーインスタンスのオーバーライド値を設定します。

制御用HTTPリスナーのポート番号
(サーバーインスタンスのオーバーライド値)(注)

サーバーインスタンスのシステムプロパティ

制御用HTTPリスナーの名前

制御用HTTPリスナー

[値]
__sr-listener(固定値)

制御用HTTPリスナーのWebコンテナへアクセスする運用形態

制御用HTTPリスナー

[プロパティ名]
requestCheck

[値]
direct(Webサーバを経由しない)

詳細については「6.8.3 HTTPサービスの定義項目」を参照してください。

可用性サービスの有効化

IJServerクラスタ

[プロパティ名]
availability-service.availability-enabled

[値]
true

Webコンテナの可用性の有効化

IJServerクラスタ

[プロパティ名]
web-container-availability.availability-enabled

[値]
true

注)Session Registry ServerとWebコンテナの間にファイアウォールを設置する場合、ここで設定したポート番号のHTTP通信が許可されるように、ファイアウォールの設定を行う必要があります。


deployment descriptorの設定

設定するdeployment descriptor

設定するタグ

Web application deployment descriptor (web.xml)

<distributable/>
詳細は、「3.2.2.2 Web application deployment descriptor (web.xml)」を参照してください。

Interstage Web application deployment descriptor (sun-web.xml)

<session-config>
<session-manager persistence-type="isjee-src"/>
</session-config>
詳細は、「3.2.3.2 Interstage Web application deployment descriptor (sun-web.xml)」を参照してください。


設定はasadminコマンド使用して行います。asadminコマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「asadmin」を参照してください。

  1. クラスパスを設定します。

    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

  2. ライフサイクルモジュールを作成します。なお、ライフサイクルモジュールの定義名(以下例の 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

  3. 制御用Valveを追加します。

    asadmin set IJServer001.http-service.virtual-server.server.property.valve_sr=com.fujitsu.interstage.jservlet.sessionrecovery.client.core.isje5.ISJE5SessionRegistryValve

  4. 制御用仮想サーバーを作成します。

    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

  5. 制御用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)を指定してください。

  6. 制御用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 set IJServer001.http-service.http-listener.__sr-listener.property.requestCheck=direct

    asadmin create-http-listener --listeneraddress 0.0.0.0 --listenerport \$\{SESSIONRECOVERY_PORT\} --defaultvs __sessionrecovery --target IJServer001 __sr-listener
    asadmin set IJServer001.http-service.http-listener.__sr-listener.property.requestCheck=direct

  7. 制御用アプリケーションを配備します。

    asadmin deploydir --virtualservers __sessionrecovery --target IJServer001 C:\Interstage\F3FMjssrc\webapps\srcapl-isjee

    asadmin deploydir --virtualservers __sessionrecovery --target IJServer001 /opt/FJSVjssrc/webapps/srcapl-isjee

  8. 可用性サービスとWebコンテナの可用性を有効にします。

    asadmin set IJServer001.availability-service.availability-enabled=true

    asadmin set IJServer001.web-container-availability.availability-enabled=true

  9. ユーザアプリケーションのWeb application deployment descriptor (web.xml)を設定します。

    web.xmlに以下の記述を追加してください。

    <distributable/>

  10. ユーザアプリケーションのInterstage Web application deployment descriptor (sun-web.xml)を設定します。

    sun-web.xmlに以下の記述を追加してください。

    <session-config>

    <session-manager persistence-type="isjee-src"/>

    </session-config>

  11. ユーザアプリケーションを配備します。

    ユーザアプリケーションでセッションリカバリ機能を使用する場合、アプリケーションの配備は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