5.3.3 メソッドタイムアウトとは
メソッドタイムアウトとは,一定時間内に終了しなかったメソッド処理を,タイムアウトとしてユーザに通知する機能です。
(1) タイムアウトの判定とタイムアウト後の動作
タイムアウトは,監視基盤で監視されるメソッドの呼び出しが,次の式を満たす場合に発生します。
タイムアウト判定時点の時刻−メソッド開始時刻 > タイムアウトの時間
また,タイムアウト発生後は,次のどちらかの動作(メソッドキャンセルのモード)を選択できます。
-
KDJE52703-Wのメッセージを出力する
-
KDJE52703-Wのメッセージを出力して,メソッドキャンセル機能を実行する
どちらの動作を選択した場合も,タイムアウトした呼び出しが終了したときに,KDJE52716-Iのメッセージが出力されます。
(2) メソッドタイムアウト機能の対象となる処理
メソッドタイムアウトの対象となる処理に,タイムアウトを設定します。設定する個所は次のとおりです。
-
Webアプリケーションのリクエスト処理
-
EJBのメソッド呼び出し処理
なお,メソッドタイムアウトの適用対象として,次の処理は含まれません。
-
J2EEアプリケーションのデプロイ時やアンデプロイ時に動作する処理
-
EJBコンテナの状態管理機能,およびアクティブセッションのタイムアウト機能で動作するEnterprise Beanの処理
Enterprise Beanのメソッド呼び出し処理とは別に,EJBコンテナが設定によって自動的に行う処理は,メソッドタイムアウトの適用対象に含まれません。
また,J2EEアプリケーションのデータ構造によっては,メソッドタイムアウトができない場合があります。詳細については,「5.3.8 実装時の注意事項」を参照してください。
(3) タイムアウト検知間隔とメソッドタイムアウト時間
メソッドタイムアウト機能を使用する場合,次の設定が必要です。
-
タイムアウトを検知するための時間間隔を設定します。
メソッドタイムアウトが発生しているかどうかの判定が,指定した間隔ごとにJ2EEサーバによって判定されます。これは,J2EEサーバ単位に設定します。
また,タイムアウトの検知は一定間隔で行われるため,検知までに最大で次の時間が掛かります。
- タイムアウトの検知に掛かる時間の算出式
-
タイムアウトの検知に掛かる時間=タイムアウトの時間+タイムアウトを検知する時間の間隔
-
メソッドタイムアウトにする時間を,J2EEアプリケーションに設定します。
設定は,J2EEアプリケーション内のEnterprise Bean単位,またはWebアプリケーション単位に設定します。
J2EEアプリケーションの実行時間監視の設定については,「5.3.9 実行環境での設定」を参照してください。