8.6.1 タイムアウトが設定できるポイント

J2EEアプリケーションを実行するシステムでは,次の図に示すポイントにタイムアウトが設定できます。なお,次の図は,クライアントがWebブラウザの場合です。また,Webサーバ連携をする場合とインプロセスHTTPサーバを使用する場合で,ポイントが異なります。

図8-9 タイムアウトが設定できるポイント(Webサーバ連携の場合)

[図データ]

なお,クライアントがEJBクライアントの場合は,WebコンテナをEJBクライアントに置き換えてください。EJBクライアントからデータベースまでの範囲のタイムアウトが設定できます。

また,インプロセスHTTPサーバを使用する場合は,リダイレクタは該当しません。このため,タイムアウトを設定するポイントとして,ポイント2~5と12は該当しません。インプロセスHTTPサーバを使用する場合にタイムアウトが設定できるポイントについて,次の図に示します。

図8-10 タイムアウトが設定できるポイント(インプロセスHTTPサーバの場合)

[図データ]

それぞれのポイントに設定するタイムアウトは,次の表に示すような用途で使い分けられます。

表8-26 各ポイントに設定するタイムアウトの目的とデフォルトのタイムアウト設定

ポイントタイムアウトの種類主な用途
1サーバ側で設定するクライアントからのリクエスト受信およびクライアントへのデータ送信のタイムアウト
Webサーバ連携の場合
通信路の障害,またはWebサーバの障害の検知
インプロセスHTTPサーバの場合
通信路の障害,または不正なクライアントからのアクセスの検知
2リダイレクタ側で設定するWebコンテナへのリクエスト送信処理のうち,コネクション確立のタイムアウト通信路の障害またはWebコンテナの障害検知
3リダイレクタ側で設定するWebコンテナへのリクエスト送信処理のうち,リクエストヘッダおよびリクエストボディ送信のタイムアウト通信路の障害またはWebコンテナの障害検知
4リダイレクタ側で設定するWebコンテナからのデータ受信のタイムアウトJ2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知
5Webコンテナ側で設定するリダイレクタからのデータ受信のタイムアウト通信路の障害またはWebサーバの障害検知
6Webアプリケーションで設定するメソッドの実行時間のタイムアウトJ2EEサーバの業務処理の障害(無限ループ,デッドロックなど)
7EJBクライアント側で設定するEnterprise Beanのリモート呼び出し(RMI-IIOP通信)とJNDIネーミングサービス呼び出しのタイムアウトJ2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知
8EJBクライアント側で設定するCTMからのEnterprise Bean呼び出しのタイムアウトJ2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知
9EJBで設定するメソッドの実行時間のタイムアウトJ2EEサーバの業務処理の障害(無限ループ,デッドロックなど)
10EJBコンテナ側で設定するデータベースのトランザクションタイムアウトデータベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止
11データベースのタイムアウトデータベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止
12Webコンテナ側で設定するリダイレクタへのレスポンス送信のタイムアウト通信路の障害またはリダイレクタの障害検知

注※ CTMを使用している場合にだけ存在するポイントです。CTMを利用しない構成の場合,ポイント7の範囲はWebコンテナからEJBコンテナにEJBリモート呼び出しを実行してから,EJBコンテナからWebコンテナに実行結果が送信されるまでの間になります。


これらのタイムアウトの基本的な設定指針は次のとおりです。

なお,1~12のポイントは,システムでの位置づけによって,次の三つに分けられます。

それぞれのポイントでの設定については,「8.6.7 タイムアウトを設定するチューニングパラメタ」を参照してください。

参考
それぞれのポイントのデフォルト値は次のとおりです。
ポイントデフォルト値
1300秒
230秒
3100秒
43,600秒
5600秒
6設定されていません。タイムアウトしません。
7設定されていません。レスポンスを待ち続けます。
8ポイント7と同じ値がEnterprise Bean呼び出し時に自動的に引き継がれて設定されます。
9設定されていません。タイムアウトしません。
10180秒
11データベースの種類とタイムアウトの設定個所ごとに異なります。
HiRDBの場合
ロック解放待ちタイムアウト:180秒
レスポンスタイムアウト:0秒(HiRDBクライアントはHiRDBサーバからの応答があるまで待ち続けます)
リクエスト間隔タイムアウト:600秒
Oracleの場合(グローバルトランザクションを使用するとき)
ロック解放待ちタイムアウト:60秒
SQL Serverの場合
メモリ取得待ちタイムアウト:-1(-1を指定した場合の動作は,SQL Serverのドキュメントを参照してください)
ロック解放待ちタイムアウト:-1(ロックが解放されるまで待ち続けます)
XDM/RD E2の場合
ロック解放待ちタイムアウト:なし(タイムアウト時間を監視しません)
SQL実行CPU時間タイムアウト:10秒
SQL実行経過時間タイムアウト:0秒(タイムアウト時間を監視しません)
トランザクション経過時間タイムアウト:600秒
レスポンスタイムアウト:0秒(HiRDBクライアントはXDM/RD E2サーバからの応答があるまで待ち続けます)
12600秒