Cosminexus システム構築ガイド

[目次][用語][索引][前へ][次へ]

6.2.3 セッション情報の引き継ぎを行うJ2EEサーバの設定

セッション情報の引き継ぎを行うJ2EEサーバの設定方法について説明します。

セッション情報の引き継ぎを行うJ2EEサーバの設定では,簡易構築定義ファイルを編集して次に示す設定をします。

セッション情報の引き継ぎに関連する簡易構築定義ファイルのパラメタを次の表に示します。

表6-3 セッション情報の引き継ぎに関連する簡易構築定義ファイルのパラメタ

分類 簡易構築定義ファイルのパラメタ 指定内容
グローバルセッション情報を格納するSFOサーバの設定※1 webserver.sfo.sfo_servers※2※3 HTTPセッションの情報の引き継ぎを行うJ2EEサーバのグローバルセッション情報を格納するSFOサーバの名称(SFOフィルタのサーバ定義名)を指定します。
複数のSFOサーバにグローバルセッション情報を格納する場合,すべてのSFOサーバの名称(SFOフィルタのサーバ定義名)を指定します。
webserver.sfo.sfo_servers.<SFOフィルタのサーバ定義名>.naming webserver.sfo.sfo_serversパラメタに指定したSFOサーバで起動するCORBAネーミングサービスのIPアドレス(またはホスト名)およびポート番号を指定します。
複数のSFOサーバにグローバルセッション情報を格納する場合,それぞれのSFOサーバで起動するCORBAネーミングサービスのIPアドレス(またはホスト名)およびポート番号を指定します。
SFOサーバとの通信タイムアウトの設定※1※4 webserver.sfo.sfo_servers.<SFOフィルタのサーバ定義名>.connectionTimeout J2EEサーバとSFOサーバとの通信タイムアウトを指定します。
複数のSFOサーバにグローバルセッション情報を格納する場合,それぞれのSFOサーバとの通信タイムアウトを指定します。
グローバルセッション情報のサイズ見積もり機能の設定※1 webserver.sfo.check_size.mode グローバルセッション情報のサイズ見積もり機能を有効にするかどうかを指定します。開発環境でグローバルセッション情報のサイズ見積もり機能を使用する場合,「on」を指定します。また,グローバルセッション情報のサイズ見積もり機能を使用しない場合,省略または「off」を指定します。
セッションIDへのサーバIDの付加 webserver.session.server_id.enabled※5 HTTPセッションのセッションIDにサーバIDを付加するかどうかを指定します。J2EEサーバ間でHTTPセッションの情報の引き継ぎを行う場合,「true」を指定します。
webserver.session.server_id.value※1※6※7 HTTPセッションのセッションIDに付加するサーバIDを指定します。
サーバIDのCookieの付加
(HTTP Cookieを使用する場合)※1※8
webserver.container.server_id.enabled HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加するかどうかを指定します。同一セッションのリクエストを,同一のWebコンテナに転送する場合,「true」を指定します。
webserver.container.server_id.name※9 HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する場合に,Cookieの名称を指定します。
webserver.container.server_id.value※7 HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する場合に,Cookieの値を指定します。
リクエストラインの最大サイズの設定
(URL書き換えを使用する場合)※1
webserver.connector.inprocess_http.limit.max_request_line※10 リクエストラインの最大サイズを設定します。

注※1
簡易構築定義ファイルの,J2EEサーバ用のユーザプロパティに設定します。

注※2
webserver.sfo.sfo_serversに指定するSFOサーバ名(SFOフィルタのサーバ定義名)とは,セッション情報の引き継ぎを行うJ2EEサーバとWebアプリケーション間でのSFOサーバの識別に使用する名称です。指定したSFOフィルタのサーバ定義名にSFOサーバ(論理サーバ)を関連づけて利用します。ここで指定したSFOフィルタのサーバ定義名は,セッション情報の引き継ぎを行うWebアプリケーションの設定で使用します。セッション情報の引き継ぎを行うWebアプリケーションの設定については,「6.2.6 セッション情報の引き継ぎを行うWebアプリケーションの設定変更」を参照してください。
なお,一つのSFOサーバに対して複数のSFOフィルタのサーバ定義名を指定できます。複数のSFOサーバを指定する場合,それぞれのSFOサーバに異なるSFOフィルタのサーバ定義名を指定してください。ただし,複数のSFOサーバに同一のSFOフィルタのサーバ定義名を指定することはできません。

注※3
複数のSFOサーバを指定する場合,一つ目に指定されたSFOサーバが,Webアプリケーションでの指定が省略された場合にデフォルトで使用するSFOサーバとなります。

注※4
J2EEサーバでは,SFOサーバの状態を監視するためのスレッド(SFOサーバ監視スレッド)を作成します。SFOサーバ監視スレッドは,SFOサーバアプリケーションで用意している,コネクションの状態監視用のビジネスメソッドを呼び出してSFOサーバのヘルスチェックを実施します。SFOサーバに障害が発生して停止した場合,コネクションの状態監視用のビジネスメソッドの呼び出しができなくなります。SFOサーバとの通信タイムアウトは,このような場合に,SFOサーバに障害が発生したと判断するために使用される時間です。このタイムアウト時間を超えると,J2EEサーバでは,SFOサーバは障害のため停止していると判断し,リトライを実行しません。

注※5
簡易構築定義ファイルの,J2EEサーバのJavaVMのシステムプロパティに設定します。

注※6
HTTPセッションのセッションIDに設定するサーバIDは,各J2EEサーバに対して一意な値となるように設定してください。HTTPセッションのセッションIDに設定されるサーバIDが,ほかのJ2EEサーバのサーバIDと重複した場合,SFOサーバとのネゴシエーションに失敗し,セッション情報の引き継ぎを行うWebアプリケーションは開始できません。

注※7
webserver.session.server_id.valueおよびwebserver.container.server_id.valueのデフォルト値には,サーバ環境の情報が含まれます。この値はクライアントに送信されるため,サーバ環境の情報を含まない値を明示的に指定することをお勧めします。

注※8
新たに負荷分散機を導入して,Webコンテナの機能でCookieによるリクエストの振り分けをする場合,HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する機能を有効にして,付加するサーバIDのCookieの名称およびCookieの値を設定します。
既存のアプリケーションで負荷分散機用にCookieの情報を設定している場合などは設定不要です。

注※9
Cookieに設定するサーバIDは,サーブレットやJSPで設定するCookieの名称,およびWebコンテナが自動設定するCookieの名称「JSESSIONID」と重複しないように注意してください。

注※10
インプロセスHTTPサーバを使用している場合のパラメタです。
設定値の算出方法と,Hitachi Web ServerまたはMicrosoft IISを使用している場合の設定個所については,「6.2.4 リクエストラインの最大サイズの設定」を参照してください。

これらのパラメタは,使用する機能によって設定するかどうかが異なります。使用する機能ごとの簡易構築定義ファイルのパラメタの設定要否を次の表に示します。

表6-4 使用する機能ごとの簡易構築定義ファイルのパラメタの設定要否

簡易構築定義ファイルのパラメタ 使用する機能
セッションフェイルオーバ機能の設定要否 グローバルセッション情報のサイズ見積もり機能の設定要否
webserver.sfo.sfo_servers 必須 無効
webserver.sfo.sfo_servers.<SFOフィルタのサーバ定義名>.naming 必須 無効
webserver.sfo.sfo_servers.<SFOフィルタのサーバ定義名>.connectionTimeout 任意 無効
webserver.sfo.check_size.mode 任意 必須
webserver.session.server_id.enabled 任意 任意
webserver.session.server_id.value 任意 任意
webserver.container.server_id.enabled 任意 任意
webserver.container.server_id.name 任意 任意
webserver.container.server_id.value 任意 任意
webserver.connector.inprocess_http.limit.max_request_line 任意 任意

(凡例)
必須:必ず指定することを示す。省略した場合はエラーとなり,SFOサーバ用アプリケーションを開始できない。
無効:指定しても無効になることを示す。設定した値は使用されない。
任意:省略できることを示す。省略した場合はデフォルトの値が設定される。

注※
パラメタに設定した値は読み込みまれません。このため,不正な値を設定した場合も検出されません。

これらのパラメタは,簡易構築定義ファイルで,論理J2EEサーバ(j2ee-server)の<configuration>タグ内に定義します。簡易構築定義ファイルの詳細については,マニュアル「Cosminexus 簡易構築・運用ガイド」を参照してください。

セッション情報の引き継ぎに関連する簡易構築定義ファイルの指定例を次に示します。

  :
<tier>
  <tier-type>combined-tier</tier-type>
  <configuration>
    <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>webserver.container.server_id.enabled</param-name>
      <param-value>true</param-value>
    </param>
    <param>
      <param-name>webserver.sfo.sfo_servers</param-name>
      <param-value>sfo_server1,sfo_server2</param-value>
    </param>
    <param>
      <param-name>webserver.sfo.sfo_servers.sfo_server1.naming</param-name>
      <param-value>host1:910</param-value>
    </param>
    <param>
      <param-name>webserver.sfo.sfo_servers.sfo_server1.connectionTimeout</param-name>
      <param-value>5</param-value>
    </param>
    <param>
      <param-name>webserver.sfo.sfo_servers.sfo_server2.naming</param-name>
      <param-value>host2:911</param-value>
    </param>
    <param>
      <param-name>webserver.sfo.sfo_servers.sfo_server2.connectionTimeout</param-name>
      <param-value>10</param-value>
    </param>
      :
  </configuration>
    :
</tier>
<tier>
  <tier-type>sfo-tier</tier-type>
  <configuration>
    <logical-server-type>sfo-server</logical-server-type>
    <param>
      :
  </configuration>
  <configuration>
    <logical-server-type>performance-tracer</logical-server-type>
    <param>
      :
  </configuration>
</tier>
  :

この記述例で設定される内容は,次のとおりです。