Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


6.6.1 J2EEサーバの設定

J2EEサーバの設定は,簡易構築定義ファイルで実施します。データベースセッションフェイルオーバ機能の定義は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に指定します。

簡易構築定義ファイルでのデータベースセッションフェイルオーバ機能の定義について次の表に示します。

表6‒39 簡易構築定義ファイルでのデータベースセッションフェイルオーバ機能の定義

項目

指定するパラメタ

設定内容

参照先

データベースセッションフェイルオーバ機能の設定

webserver.dbsfo.enabled

J2EEサーバ単位でデータベースセッションフェイルオーバ機能を使用するかどうかを設定します。

DB Connectorの別名の設定

webserver.dbsfo.connector.name

DB Connectorで設定する,DB Connectorの別名を指定します。

DB Connectorの別名の設定については「6.6.4(2) DB Connectorの別名の設定」を参照してください。

グローバルセッション情報に含めることができるHTTPセッションの属性情報の最大サイズの設定

webserver.dbsfo.attribute_data_size.max

グローバルセッション情報に含めることができるHTTPセッションの属性情報の最大サイズを設定します。

HTTPセッションの属性情報のサイズ見積もり機能の設定

webserver.dbsfo.check_size.mode

HTTPセッションの属性情報のサイズ見積もり機能を使用するかどうかを設定します。

完全性保障モードの設定

webserver.dbsfo.integrity_mode.enabled※1

データベースセッションフェイルオーバ機能の完全性保障モードを有効にするかどうかを設定します。

シリアライズ処理で使用するメモリ量の設定

シリアライズ処理で使用するメモリを考慮して,JavaVMのチューニングをします※2

拡張子によるデータベースセッションフェイルオーバ機能の抑止の設定

webserver.dbsfo.exclude.extensions

J2EEサーバ単位でデータベースセッションフェイルオーバ機能を使用する場合に,データベースセッションフェイルオーバ機能を抑止する拡張子を設定します。

URI単位のデータベースセッションフェイルオーバ機能の抑止の設定

webserver.dbsfo.exclude.uris

J2EEサーバ単位でデータベースセッションフェイルオーバ機能を使用する場合に,データベースセッションフェイルオーバ機能を抑止するURIを設定します。

(1)

参照専用リクエストの設定

webserver.dbsfo.session_read_only.uris

参照専用リクエストとするURIを設定します。

(2)

HttpSessionのサーバID付加機能の設定

  • webserver.session.server_id.enabled

  • webserver.session.server_id.value

HttpSessionのサーバID付加機能を設定します。また,サーバIDには冗長化したJ2EEサーバごとに異なる値を設定します※3

同時実行スレッド数制御機能を使用する場合の実行待ちキュー不足時の設定

webserver.dbsfo.thread_control_queue.enabled

Webアプリケーション単位の同時実行スレッド数制御機能が有効の場合に,実行待ちキューの空きが不足したときの動作を設定します。

ネゴシエーション失敗時のWebアプリケーション開始処理の設定

webserver.dbsfo.negotiation.high_level

ネゴシエーションが失敗した場合にWebアプリケーションの開始処理を続行するか中止するかを設定します。

データベースセッションフェイルオーバ機能の抑止対象リクエスト内でHTTPセッションを使用した場合にスローされる例外の設定

webserver.dbsfo.exception_type_backcompat

データベースセッションフェイルオーバ機能の抑止対象リクエスト内でHTTPセッションを使用した場合に発生する例外を設定します。

(凡例)−:該当なし。

注※1 完全性保障モードの設定でwebserver.dbsfo.integrity_mode.enabledパラメタにfalseを指定した場合,HttpSessionのサーバID付加機能の設定でwebserver.session.server_id.enabledパラメタ,およびwebserver.session.server_id.valueパラメタを指定する必要があります。

注※2 シリアライズ処理で使用するメモリ量の見積もり方法については,「5.8.1 シリアライズ処理で使用するメモリの見積もり」を参照してください。JavaVMのチューニングについては,マニュアル「アプリケーションサーバ システム設計ガイド」の「7. JavaVMのメモリチューニング」を参照してください。

注※3 実行系と待機系による系切り替えシステムの場合,実行系と待機系の値は同じにしてください。

簡易構築定義ファイル,および指定するパラメタの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3 簡易構築定義ファイル」を参照してください。

〈この項の構成〉

(1) データベースセッションフェイルオーバ機能の抑止の設定

ここでは,URI単位のデータベースセッションフェイルオーバ機能の抑止をする場合の,URIの指定方法について説明します。

(a) URIの指定方法

コンテキストパスを含む「/」(スラッシュ)で始まるURIを指定します。パスパラメタ,クエリ,およびフラグメントは含みません。なお,設定値のURI中に「;」(セミコロン)を使用することはできません。

また,複数のURIを指定する場合は,「;」(セミコロン)で区切って指定してください。

(b) 完全一致指定とプリフィックス一致指定

次のどちらかで指定できます。

完全一致指定

指定したURIがリクエストURIに完全一致した場合だけ,データベースセッションフェイルオーバ機能の抑止の対象になります。

指定例(簡易構築定義ファイルの場合)

:
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>webserver.dbsfo.exclude.uris</param-name>
      <param-value>/examples/test/TestServlet;/examples/test2/TestServlet2</param-value>
    </param>
</configuration>
:

この例の場合,次のリクエストURIがデータベースセッションフェイルオーバ機能の抑止対象になります。

  • http://host/examples/test/TestServlet

  • http://host/examples/test/TestServlet?name=value

  • http://host/examples/test/TestServlet;gsessionid=XXXXXXXXXX

プリフィックス一致指定

リクエストURIとプリフィックスが一致する場合,データベースセッションフェイルオーバ機能の抑止の対象になります。

指定例(簡易構築定義ファイルの場合)

:
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>webserver.dbsfo.exclude.uris</param-name>
      <param-value>/examples/*</param-value>
    </param>
</configuration>
:

この例の場合,次のリクエストURIがデータベースセッションフェイルオーバ機能の抑止対象になります。

  • http://host/examples/test/TestServlet

  • http://host/examples/dbsfo/DbsfoServlet?name=value

なお,プリフィックス一致指定の場合,URIの指定は「/*」で終了する必要があります。例えば,次のようなURIを指定した場合は,プリフィックス一致指定ではなく,完全一致指定と扱われます。

  • /examples/test*

(c) URIの正規化

データベースセッションフェイルオーバ機能の抑止対象とするURIは,正規化して指定する必要があります。正規化していないURIを指定した場合,KDJE34341-Wのメッセージが出力されて,該当するURIは抑止の対象外になります。

正規化したURIの例を次に示します。

  • /examples/test/servlet/TestServlet

正規化していないURIの例を次に示します。これらのURIは抑止の対象外になります。

  • /examples/test/jsp/../servlet/TestServlet

  • /examples/test/./servlet/TestServlet

(d) URLエンコードとの対応

URLエンコードをしたURIを抑止対象として指定した場合は,指定したURIと一致する,URLエンコードされたURLのリクエストがデータベースセッションフェイルオーバ機能の抑止対象になります。同様に,URLエンコードをしないURIを指定した場合は,URLエンコードされていないURLのリクエストがデータベースセッションフェイルオーバ機能の抑止対象になります。

ただし,URIのデコード機能を使用する場合,対象のURLは,デコードが実施されたあとでURIによるデータベースフェイルオーバ機能の抑止の対象かどうかが判定されます。このため,URLエンコードされたURLが抑止対象として指定したURIと一致する場合に,URI単位のデータベースセッションフェイルオーバ機能の抑止対象になります。

URIのデコード機能の有効・無効によって抑止の対象となるURLについて,次の表に示します。

表6‒40 URIのデコード機能の有効・無効によって抑止の対象となるURL

プロパティ

設定値

リクエストURL

URIのデコード機能 有効

URIのデコード機能 無効

エンコードあり

エンコードなし

エンコードあり

エンコードなし

エンコードあり

抑止しない

抑止しない

抑止する

抑止しない

エンコードなし

抑止する

抑止する

抑止しない

抑止する

(凡例)

抑止する:データベースセッションフェイルオーバ機能を抑止する(データベースセッションフェイルオーバ機能が無効になる)。

抑止しない:データベースセッションフェイルオーバ機能を抑止しない(データベースセッションフェイルオーバ機能が有効になる)。

エンコードあり:URLエンコードされた文字列を含むURI。

(例:/examples/%61/Servlet)

エンコードなし:URLエンコードされた文字列を含まないURI。

(例:/examples/a/Servlet)

(e) URI指定時の注意事項

URIによるデータベースセッションフェイルオーバ機能の抑止で設定するURIは,ネゴシエーション時に確認される項目ではありません。このため,それぞれのJ2EEサーバで設定するURIが同じことを確認してください。

(2) 参照専用リクエストの設定

ここでは,参照専用リクエストを設定する場合の,URIの指定方法について説明します。

(a) URIの指定方法

コンテキストパスを含む「/」(スラッシュ)で始まるURIを指定します。パスパラメタ,クエリ,およびフラグメントは含みません。指定できる文字数は512文字までです。なお,設定値のURI中に「;」(セミコロン)を使用することはできません。

また,複数のURIを指定する場合は,「;」(セミコロン)で区切って指定してください。

(b) 完全一致指定とプリフィックス一致指定

次のどちらかで指定できます。

完全一致指定

指定したURIがリクエストURIに完全一致した場合だけ,参照専用リクエストになります。

指定例(簡易構築定義ファイルの場合)

:
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>webserver.dbsfo.session_read_only.uris</param-name>
      <param-value>/examples/test/TestServlet;/examples/test2/TestServlet2</param-value>
    </param>
</configuration>
:

この例の場合,次のリクエストURIが参照専用リクエストになります。

  • http://host/examples/test/TestServlet

  • http://host/examples/test/TestServlet?name=value

  • http://host/examples/test/TestServlet;gsessionid=XXXXXXXXXX

プリフィックス一致指定

リクエストURIとプリフィックスが一致する場合,参照専用リクエストになります。

指定例(簡易構築定義ファイルの場合)

:
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>webserver.dbsfo.session_read_only.uris</param-name>
      <param-value>/examples/*</param-value>
    </param>
</configuration>
:

この例の場合,次のリクエストURIが参照専用リクエストになります。

  • http://host/examples/test/TestServlet

  • http://host/examples/dbsfo/DbsfoServlet?name=value

なお,プリフィックス一致指定の場合,URIの指定は「/*」で終了する必要があります。例えば,次のようなURIを指定した場合は,プリフィックス一致指定ではなく,完全一致指定と扱われます。

  • /examples/test*

(c) URIの正規化

参照専用リクエストとするURIは,正規化して指定する必要があります。正規化していないURIを指定した場合,KDJE34357-Wのメッセージが出力されて,該当するURIは参照専用リクエストになりません。

正規化したURIの例を次に示します。

  • /examples/test/servlet/TestServlet

正規化していないURIの例を次に示します。これらのURIは参照専用リクエストになりません。

  • /examples/test/jsp/../servlet/TestServlet

  • /examples/test/./servlet/TestServlet

(d) URLエンコードとの対応

URLエンコードをしたURIを参照専用リクエストとして指定した場合は,指定したURIと一致する,URLエンコードされたURLのリクエストが参照専用リクエストになります。同様に,URLエンコードをしないURIを指定した場合は,URLエンコードされていないURLのリクエストが参照専用リクエストになります。

ただし,URIのデコード機能を使用する場合,対象のURLは,デコードが実施されたあとでURIによる参照専用リクエストかどうかが判定されます。このため,URLエンコードされたURLが参照専用リクエストとして指定したURIと一致する場合に,URI単位の参照専用リクエストになります。

URIのデコード機能の有効・無効によって参照専用リクエストになるURLについて,次の表に示します。

表6‒41 URIのデコード機能の有効・無効によって参照専用リクエストになるURL

プロパティ

設定値

リクエストURL

URIのデコード機能 有効

URIのデコード機能 無効

エンコードあり

エンコードなし

エンコードあり

エンコードなし

エンコードあり

参照専用リクエストにならない

参照専用リクエストにならない

参照専用リクエストになる

参照専用リクエストにならない

エンコードなし

参照専用リクエストになる

参照専用リクエストになる

参照専用リクエストにならない

参照専用リクエストになる

(凡例)

参照専用リクエストになる:リクエストURLが参照専用リクエストになる。

参照専用リクエストにならない:リクエストURLが参照専用リクエストにならない。

エンコードあり:URLエンコードされた文字列を含むURI。

(例:/examples/%61/Servlet)

エンコードなし:URLエンコードされた文字列を含まないURI。

(例:/examples/a/Servlet)