9.3.1 タイムアウトが設定できるポイント
バッチアプリケーションを実行するシステムでは,次の図に示すポイントにタイムアウトが設定できます。
それぞれのポイントに設定するタイムアウトは,次の表に示すような用途で使い分けられます。
ポイント |
タイムアウトの種類 |
主な用途 |
---|---|---|
1 |
バッチサーバ側で設定するEnterprise Beanのリモート呼び出し(RMI-IIOP通信)とJNDIネーミングサービス呼び出しのタイムアウト |
バッチサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知 |
2※ |
バッチサーバ側で設定するCTMからのEnterprise Bean呼び出しのタイムアウト |
バッチサーバの業務処理の障害(無限ループ,デッドロックなど),または通信路の障害の検知 |
3 |
Enterprise Bean呼び出しアクセスしたEJBで設定するメソッドの実行時間のタイムアウト |
J2EEサーバの業務処理の障害(無限ループ,デッドロックなど) |
4 |
バッチサーバ側で設定するデータベースのトランザクションタイムアウト |
データベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止 |
5 |
データベースのタイムアウト |
データベースサーバの障害(サーバダウンまたはデッドロックなど)の検知,またはリソースの長時間占有防止 |
これらのタイムアウトの基本的な設定指針は次のとおりです。
-
タイムアウト値の設定は,呼び出し元(バッチサーバ)に近いほど大きな値を設定するのが原則です。このため,次の関係で設定することを推奨します。
-
ポイント1=ポイント2>ポイント3>ポイント4>ポイント5
-
-
1,4,5のポイントのタイムアウト値を設定する場合は,呼び出し処理に通常どの程度の時間が掛かっているかを見極めた上で,呼び出す処理(業務)ごとに算出して設定してください。
なお,1〜5のポイントは,システムでの位置づけによって,次の二つに分けられます。
-
Enterprise Bean呼び出しで意識する必要があるポイント(1〜3)
このポイントでタイムアウトを設定する項目は,J2EEアプリケーション実行基盤のバックシステムで設定できる項目と同じです。詳細は,「8.6.3 バックシステムでのタイムアウトを設定する」を参照してください。
-
データベース接続時に意識する必要があるポイント(4と5)
このポイントは,さらにトランザクションでのタイムアウトとデータベースでのタイムアウトに分けて意識する必要があります。
トランザクションでのタイムアウトの詳細は,「9.3.2 トランザクションタイムアウトを設定する」を参照してください。
データベースでのタイムアウトを設定する項目は,J2EEアプリケーション実行基盤のバックシステムで設定できる項目と同じです。詳細は,「8.6.6 データベースでのタイムアウトを設定する」を参照してください。
それぞれのポイントでの設定については,バッチアプリケーション実行基盤の「9.3.3 タイムアウトを設定するチューニングパラメタ」,およびJ2EEアプリケーション実行基盤の「8.6.8 タイムアウトを設定するチューニングパラメタ」を参照してください。
- 参考
-
それぞれのポイントのデフォルト値は次のとおりです。
ポイント
デフォルト値
1
設定されていません。レスポンスを待ち続けます。
2
ポイント1と同じ値がEnterprise Bean呼び出し時に自動的に引き継がれて設定されます。
3
設定されていません。タイムアウトしません。
4
180秒
5
データベースの種類とタイムアウトの設定個所ごとに異なります。※
- HiRDBの場合
-
ロック解放待ちタイムアウト:180秒
レスポンスタイムアウト:0秒(HiRDBクライアントはHiRDBサーバからの応答があるまで待ち続けます)
リクエスト間隔タイムアウト:600秒
- SQL Serverの場合
-
メモリ取得待ちタイムアウト:-1(-1を指定した場合の動作は,SQL Serverのドキュメントを参照してください)
ロック解放待ちタイムアウト:-1(ロックが解放されるまで待ち続けます)
- XDM/RD E2の場合
-
ロック解放待ちタイムアウト:なし(タイムアウト時間を監視しません)
SQL実行CPU時間タイムアウト:10秒
SQL実行経過時間タイムアウト:0秒(タイムアウト時間を監視しません)
トランザクション経過時間タイムアウト:600秒
レスポンスタイムアウト:0秒(HiRDBクライアントはXDM/RD E2サーバからの応答があるまで待ち続けます)