ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Java EE運用ガイド
FUJITSU Software

2.4.7 アプリケーション最大処理時間の監視とレスポンス監視

アプリケーション処理時間の監視

アプリケーションの最大処理時間の監視を行うことで、アプリケーションのハングアップやレスポンス遅延を検出できます。
本機能は、Webアプリケーション、EJBアプリケーション、Message-driven Beanに対して、プロセス外からの呼出しが行われた場合に有効になります。



最大処理時間を超過したときの動作は、「アプリケーション最大処理時間超過時の制御」で指定します。デフォルト値は、「警告メッセージを出力する」です。
アプリケーション最大処理時間のデフォルト値は480(秒)です。
アプリケーション最大処理時間を超過した場合、10分間は、同一インスタンスに対して、アプリケーション最大処理時間の超過を検出しません。
10分以内にアプリケーション最大処理時間の超過を検出したい場合、クラスタ再起動、または、インスタンス再起動を行うことでアプリケーション最大処理時間の超過を検出することができます。

レスポンス監視

アプリケーション最大処理時間の監視とは別に、IJServerクラスタ運用中に配下のサーバーインスタンスについてレスポンス監視を行っています。レスポンス監視では運用中のIJServerクラスタ配下の各サーバーインスタンスから、Interstage Java EE Node Agentサービスへ一定間隔(5秒間隔)で生存通知が行われます。
何らかの理由によりこの通知が30秒間途絶えた場合、サーバーインスタンスの運用で問題が発生していると判断します。
レスポンス監視時間を超過した場合も、「アプリケーション最大処理時間超過時の制御」で指定した動作が実行されます。

注意

プロセス異常終了によるプロセス自動再起動と、アプリケーション最大処理時間を超過した場合のプロセス停止では、10分間アプリケーション最大処理時間の超過を検出しない状態を解除することができません。

「アプリケーション最大処理時間超過時の制御」で指定する動作

警告メッセージを出力する

最大処理時間を超過した場合、以下の処理が行われます。

  1. イベントログ/システムログに以下の警告メッセージが出力されます。

    • アプリケーション最大処理時間の監視の場合:OM1020

    • レスポンス監視の場合:OM1120

  2. Java VMログに1回目のフルスレッドダンプが出力されます。

  3. 2.の10秒後に、Java VMログに2回目のフルスレッドダンプが出力されます。

注意

  • アプリケーション最大処理時間を検出したスレッドは回収されず、処理を継続します。そのため、警告メッセージが出力された後にアプリケーションの処理が成功する場合があります。

  • 特定のIJServerクラスタ配下の複数のサーバーインスタンスで同時にアプリケーション最大処理時間を超過した場合、OM1020のメッセージは1回だけ出力されます。

プロセスを強制停止する

アプリケーション最大処理時間、またはレスポンス監視時間を超過した場合、以下の処理が行われます。

  1. イベントログ/システムログに以下のエラーメッセージが出力されます。

    • アプリケーション最大処理時間の監視の場合:OM1005

    • レスポンス監視の場合:OM1124

  2. Java VMログに1回目のフルスレッドダンプが出力されます。

  3. 2.の10秒後に、Java VMログに2回目のフルスレッドダンプが出力されます。

  4. 3.の10秒後に、プロセスが強制停止されます。

注意

プロセスが強制停止されるまで最低20秒を要するため、その間に正常にアプリケーションが復帰する場合があります。

また、強制停止のタイミングにより以下の状態になることが考えられます。
(正常にレスポンスすべてがクライアントまで送信できた場合は除きます)

  • アプリケーションがレスポンス未送信の場合
    レスポンスがクライアントに返らず、通信が切断されます。
    ただし、クライアントからのアクセスがWebサーバを経由していた場合、Webサーバコネクタが異常を検知してクライアントにステータスコード500を返します。

  • アプリケーションがレスポンスの一部を送信済みの場合
    レスポンスの一部のみが送信され、レスポンスの送信が未完了の状態で強制停止された場合、送信済みのデータ(ステータスライン、ヘッダー、メッセージボディ)までがクライアントに送信されます。
    これは、強制停止時点において、すでにクライアントに送信済みのデータは取り戻せないためです。
    この場合、アプリケーションが返却した結果に依存するため、必ずステータスコードが200になるとは限りません。

設定方法については、「6.8.19 プロセス制御の定義項目」を参照してください。