Cosminexus システム運用ガイド
J2EEアプリケーションの内部で無限ループなどが発生すると,J2EEアプリケーションの動作を制御できなくなります。このようなトラブルへの対策として,J2EEアプリケーションの実行時間にタイムアウト値を設定しておき,一定時間を過ぎたら処理が完了しなくても制御が戻るように設定する方法があります。
Cosminexusで構築したシステムでは,次の2種類の機能が使用できます。
これらの機能では,J2EEアプリケーション内のメソッド単位にタイムアウト時間を設定して監視し,一定時間内に終了しなかったリクエストのタイムアウトを検知できます(メソッドタイムアウト機能)。また,タイムアウトが発生した場合,強制的にメソッドをキャンセルできます(メソッドキャンセル機能)。このとき,トランザクションも強制決着されます。メソッドキャンセルは,自動的に実行されるように設定できます。
J2EEアプリケーションの実行時間を監視してタイムアウトが発生したリクエストを自動的にキャンセルするための設定は,サーバ管理コマンドを使用して実行します。また,J2EEアプリケーションの実行時間を監視するかどうか,および監視時間間隔は,J2EEサーバの動作設定のカスタマイズで設定します。J2EEアプリケーション実行時間の監視の設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。
また,J2EEアプリケーションでメソッドタイムアウトが発生した場合や,メソッドキャンセルに失敗したスレッドが存在する場合は,サーバ管理コマンドを使用して,手動でメソッドキャンセルを実行(再実行)する必要があります。
サーバ管理コマンドによってメソッドキャンセルを実行する手順を次に示します。
なお,J2EEアプリケーションを強制的に停止した場合も,メソッドはキャンセルされます。J2EEアプリケーションの強制停止についての詳細は,「4.5.5 J2EEアプリケーションの停止」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.