ページの先頭行へ戻る
Interstage Application Server V12.0.0 Java EE 7 設計・構築・運用ガイド
FUJITSU Software

4.23.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.23.2 Session Registry Serverの設定」を参照してください。

Session Registry Clientとして使用する場合は、通常のIJServerクラスタの設定に加えて、以下の定義項目と、ユーザアプリケーションの定義が必要です。なお、IJServerクラスタを起動したまま定義項目を変更した場合、IJServerクラスタの再起動が必要です。


定義項目

項目名

設定箇所

設定内容

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

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

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

セッションのバックアップ先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.isje7.ISJE7SessionRegistryValve(固定値)

制御用仮想サーバー名

制御用仮想サーバー

[値]
__sessionrecovery(固定値)

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

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

[プロパティ名]
allowRemoteAddress

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

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

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

[プロパティ名]
SESSIONRECOVERY_PORT

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

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

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

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

制御用HTTPリスナーの名前

制御用HTTPリスナー

[値]
__sr-listener(固定値)

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

制御用HTTPリスナー

[プロパティ名]
request-check

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

詳細については「8.8.3 ネットワーク設定の定義項目」を参照してください。

可用性サービスの有効化

IJServerクラスタ

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

[値]
true

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

IJServerクラスタ

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

[値]
true

EJBコンテナの可用性の無効化

IJServerクラスタ

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

[値]
false

Java VMのオプション

IJServerクラスタのJava VMのオプション

[値]
-Dorg.jboss.weld.serialization.beanIdentifierIndexOptimization=false

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

deployment descriptorの設定

設定するdeployment descriptor

設定するタグ

Web application deployment descriptor (web.xml)

<distributable/>

Web application deployment descriptor(web.xml)の詳細は、Java EE規約、およびそのサブ規約を参照してください。

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

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


設定はasadminコマンドを使用します。asadminコマンドの詳細については、「第10章 Java EE 7運用コマンド」-「10.1 asadmin」を参照してください。

  1. ライフサイクルモジュールを作成します。なお、ライフサイクルモジュールの定義名(以下例の src_module001)は任意の名前で指定可能です。また、IJServerクラスタを起動したままライフサイクルモジュールを作成した場合、IJServerクラスタを再起動する必要があります。

    asadmin create-lifecycle-module --target IJServer001 --classname com.fujitsu.interstage.jservlet.sessionrecovery.client.startup.ISJE7Starter --property srsAddress=192.0.2.1:srsPort=5678 src_module001

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

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

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

    asadmin create-virtual-serverサブコマンドを使用します。作成した仮想サーバーに対し、アクセスを許可するIPアドレスを正規表現で指定します。--hostsオプションには、Session Registry ClientのIPアドレスを指定します。なお、誤って制御用仮想サーバーを作成してしまった場合には、IJServerクラスタを作成し直してください。

    asadmin create-virtual-server --target IJServer001 --hosts 192.0.2.2 __sessionrecovery

    asadmin set IJServer001.http-service.virtual-server.__sessionrecovery.property.allowRemoteAddress=192\.0\.2\.1

    asadmin create-virtual-server --target IJServer001 --hosts 192.0.2.2 __sessionrecovery

    asadmin set IJServer001.http-service.virtual-server.__sessionrecovery.property.allowRemoteAddress=192\\.0\\.2\\.1

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

  5. 制御用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.network-config.protocols.protocol.__sr-listener.http.request-check=direct

    asadmin create-http-listener --listeneraddress 0.0.0.0 --listenerport \$\{SESSIONRECOVERY_PORT\} --defaultvs __sessionrecovery --target IJServer001 __sr-listener

    asadmin set IJServer001.network-config.protocols.protocol.__sr-listener.http.request-check=direct

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

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer001 C:\Interstage\F3FMisje7\glassfish\lib\install\applications\sr\srcapl\jssrc-servlets.war

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer001 /opt/FJSVisje7/glassfish/lib/install/applications/sr/srcapl/jssrc-servlets.war

    注意

    同一マシン内で、業務ごとにSession Registry Clientを運用することが可能です。その際は、業務ごとにIJServerクラスタを作成し、それぞれに対しアプリケーション名を変更して、制御用アプリケーションを配備してください。

    複数運用するSession Registry Clientに作成するIJServerクラスタ名をそれぞれ“IJServer001”、“IJServer002”とした場合

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer001 --name jssrc-servlets001 C:\Interstage\F3FMisje7\glassfish\lib\install\applications\sr\srcapl\jssrc-servlets.war

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer002 --name jssrc-servlets002 C:\Interstage\F3FMisje7\glassfish\lib\install\applications\sr\srcapl\jssrc-servlets.war

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer001 --name jssrc-servlets001 /opt/FJSVisje7/glassfish/lib/install/applications/sr/srcapl/jssrc-servlets.war

    asadmin deploy --virtualservers=__sessionrecovery --target IJServer002 --name jssrc-servlets002 /opt/FJSVisje7/glassfish/lib/install/applications/sr/srcapl/jssrc-servlets.war

  7. 可用性サービスとWebコンテナの可用性を有効にします。また、EJBコンテナの可用性を無効にします。

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

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

    asadmin set IJServer001.availability-service.ejb-container-availability.availability-enabled=false

  8. Java VMのオプションを設定します。

    asadmin create-jvm-options --target IJServer001 \-Dorg.jboss.weld.serialization.beanIdentifierIndexOptimization=false

    asadmin create-jvm-options --target IJServer001 \\-Dorg.jboss.weld.serialization.beanIdentifierIndexOptimization=false

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

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

    <distributable/>

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

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

    <session-config>

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

    </session-config>

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

    ユーザアプリケーションでセッションリカバリ機能を使用する場合、アプリケーションの配備はasadminコマンドのdeployサブコマンドを使用し、--availabilityenabledオプションと--virtualserversオプションを指定します。

    注意

    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