Hitachi

Cosminexus V11 アプリケーションサーバ システム設計ガイド


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

J2EEアプリケーションを実行するシステムでは,次の図に示すポイントにタイムアウトが設定できます。なお,次の図は,クライアントがWebブラウザの場合です。また,Webサーバと連携する場合と,Webサーバを経由しないでJ2EEサーバに直接リクエストを送受信する場合で,ポイントが異なります。

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

[図データ]

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

また,Webサーバを経由しないでJ2EEサーバに直接リクエストを送受信する場合は,Webサーバとリバースプロキシは該当しません。このため,タイムアウトを設定するポイントとして,ポイント1〜4は該当しません。J2EEサーバに直接リクエストを送受信する場合にタイムアウトが設定できるポイントについて,次の図に示します。

図8‒10 タイムアウトが設定できるポイント(J2EEサーバに直接リクエストを送受信する場合)

[図データ]

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

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

ポイント

タイムアウトの種類

主な用途

1

Webサーバ側で設定するクライアントからのリクエスト受信およびクライアントへのデータ送信のタイムアウト

通信路の障害,またはWebサーバの障害の検知

2

リバースプロキシ側で設定するWebコンテナへのリクエスト送信処理のうち,コネクション確立のタイムアウト

通信路の障害またはWebコンテナの障害検知

3

リバースプロキシ側で設定するWebコンテナへのリクエスト送信処理のうち,リクエストヘッダおよびリクエストボディ送信のタイムアウト

通信路の障害またはWebコンテナの障害検知

4

リバースプロキシ側で設定するWebコンテナからのデータ受信のタイムアウト

J2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知

5

Webコンテナ側で設定するリバースプロキシまたはWebクライアントからのデータ受信のタイムアウト

通信路の障害,Webサーバの障害検知,または不正なクライアントからのアクセスの検知

6

Webアプリケーションで設定するメソッドの実行時間のタイムアウト

J2EEサーバの業務処理の障害(無限ループ,デッドロックなど)

7

EJBクライアント側で設定するEnterprise Beanのリモート呼び出し(RMI-IIOP通信)とJNDIネーミングサービス呼び出しのタイムアウト

J2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知

8

EJBクライアント側で設定するCTMからのEnterprise Bean呼び出しのタイムアウト

J2EEサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知

9

EJBで設定するメソッドの実行時間のタイムアウト

J2EEサーバの業務処理の障害(無限ループ,デッドロックなど)

10

EJBコンテナ側で設定するデータベースのトランザクションタイムアウト

データベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止

11

DB Connectorで設定するコネクション取得時のタイムアウト

コネクション取得時の障害検知(通信路の障害またはリソース枯渇)

12

データベースのタイムアウト

データベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止

13

Webコンテナ側で設定するリバースプロキシまたはWebクライアントへのレスポンス送信のタイムアウト

通信路の障害またはWebサーバの障害検知

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

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

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

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

参考

それぞれのポイントのデフォルト値は次のとおりです。

ポイント

デフォルト値

1

60秒

2

60秒

3

60秒

4

60秒

5

300秒

6

設定されていません。タイムアウトしません。

7

設定されていません。レスポンスを待ち続けます。

8

ポイント7と同じ値がEnterprise Bean呼び出し時に自動的に引き継がれて設定されます。

9

設定されていません。タイムアウトしません。

10

180秒

11

タイムアウトの設定個所ごとに異なります。

  • 物理コネクション確立時のタイムアウト:8秒

  • コネクション枯渇時のコネクション取得要求のタイムアウト:30秒

  • コネクション障害検知時のタイムアウト:5秒

12

データベースの種類とタイムアウトの設定個所ごとに異なります。

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サーバからの応答があるまで待ち続けます)

13

300秒