6.6.1 J2EEサーバの設定
J2EEサーバの設定は,簡易構築定義ファイルで実施します。データベースセッションフェイルオーバ機能の定義は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に指定します。
簡易構築定義ファイルでのデータベースセッションフェイルオーバ機能の定義について次の表に示します。
項目 |
指定するパラメタ |
設定内容 |
参照先 |
---|---|---|---|
データベースセッションフェイルオーバ機能の設定 |
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付加機能の設定 |
|
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セッションを使用した場合に発生する例外を設定します。 |
− |
簡易構築定義ファイル,および指定するパラメタの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「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について,次の表に示します。
プロパティ 設定値 |
リクエストURL |
|||
---|---|---|---|---|
URIのデコード機能 有効 |
URIのデコード機能 無効 |
|||
エンコードあり |
エンコードなし |
エンコードあり |
エンコードなし |
|
エンコードあり |
抑止しない |
抑止しない |
抑止する |
抑止しない |
エンコードなし |
抑止する |
抑止する |
抑止しない |
抑止する |
(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について,次の表に示します。
プロパティ 設定値 |
リクエストURL |
|||
---|---|---|---|---|
URIのデコード機能 有効 |
URIのデコード機能 無効 |
|||
エンコードあり |
エンコードなし |
エンコードあり |
エンコードなし |
|
エンコードあり |
参照専用リクエストにならない |
参照専用リクエストにならない |
参照専用リクエストになる |
参照専用リクエストにならない |
エンコードなし |
参照専用リクエストになる |
参照専用リクエストになる |
参照専用リクエストにならない |
参照専用リクエストになる |