プロセス外からのアプリケーション呼び出しは、PCMIサービスによって処理時間を監視されます。監視されるアプリケーションの種別は、Webアプリケーション、EJBアプリケーション、Message-driven Beanです。また、監視されるアプリケーションは、Interstage Java EE 7 DASサービス、IJServerクラスタに配備されたものです。
アプリケーションの処理時間がPCMIプロファイルの「アプリケーション最大処理時間」を超過していないか監視することで、アプリケーションのハングアップやレスポンス遅延を検出します。「アプリケーション最大処理時間」の省略値は480秒です。
アプリケーションの処理時間が「アプリケーション最大処理時間」を超過したら、PCMIプロファイルの「アプリケーション最大処理時間超過時の制御」が実行されます。「アプリケーション最大処理時間超過時の制御」に指定可能な動作は下記です。
アプリケーション最大処理時間の超過が検出されたプロセス(サーバーインスタンス、Interstage Java EE 7 DASサービス)では、その後10分間「アプリケーション最大処理時間」の超過は検出されません(注)。アプリケーション最大処理時間の超過を10分より短い間隔で検出する場合は、プロセスを再起動する必要があります。
注)同じIJServerクラスタであっても、異なるサーバーインスタンスであれば「アプリケーション最大処理時間」の検出は停止されません。
警告メッセージをイベントログ/システムログに出力しない
アプリケーション最大処理時間を超過すると、下記の処理が行われます。
Java VMログに1回目のフルスレッドダンプを出力します。
1.の10秒後、Java VMログに2回目のフルスレッドダンプを出力します。
参考
サーバーログに警告メッセージ「OM3004」が出力されます。
注意
アプリケーション最大処理時間の超過が検出されても、スレッドは回収されずに処理を継続するため、警告メッセージ出力後に、アプリケーションの処理が成功する場合があります。
警告メッセージをイベントログ/システムログに出力する
アプリケーション最大処理時間を超過した場合、以下の処理が行われます。
イベントログ/システムログに、警告メッセージ「PCMI1106」を出力します。
Java VMログに1回目のフルスレッドダンプを出力します。
2.の10秒後、Java VMログに2回目のフルスレッドダンプを出力します。
注意
アプリケーション最大処理時間の超過が検出されても、スレッドは回収されずに処理を継続するため、警告メッセージ出力後に、アプリケーションの処理が成功する場合があります。
特定のIJServerクラスタ配下の複数サーバーインスタンスで、同時に、アプリケーション最大処理時間の超過が検出された場合、警告メッセージ「PCMI1106」は1回だけ出力されます。
警告メッセージをイベントログ/システムログに出力して、プロセスを強制停止する
アプリケーション最大処理時間を超過した場合、以下の処理が行われます。
イベントログ/システムログに、エラーメッセージ「PCMI1107」を出力します。
Java VMログに1回目のフルスレッドダンプを出力します。
2.の10秒後、Java VMログに2回目のフルスレッドダンプを出力します。
3.の10秒後、プロセスを強制停止します。
注意
アプリ最大処理時間の超過を検出してからプロセスを強制停止するまで、最低20秒の時間を要するため、プロセスが強制停止される前に、アプリケーションが正常に復帰する場合があります。
強制停止のタイミングにより、以下の状態になる場合があります(クライアントにすべてのレスポンスを正常に送信できた場合を除く)。
アプリケーションがレスポンス未送信の状態で強制停止された場合は、クライアントにレスポンスが返らずに、通信が切断されます。ただし、クライアントからWebサーバを経由してアクセスしている場合は、Webサーバコネクタが異常を検知して、クライアントにステータスコード500を返します。
アプリケーションがレスポンスの一部だけを送信し、レスポンスの送信が未完了の状態で強制停止された場合は、強制停止時点でクライアントに送信済みのデータを取り戻せないため、クライアントに送信済みのデータ(ステータスライン、ヘッダー、メッセージボディ)までが送信されます。この場合、アプリケーションが返却した結果に依存するため、ステータスコード200以外を返すことがあります。
PCMIプロファイルの「プロセスの自動再起動」に「自動再起動する」(デフォルト)を設定している場合、強制停止されたプロセスは自動的に再起動されます。
参照
PCMIプロファイルの設定方法については、「6.2.1 PCMIプロファイルの変更方法」を参照してください。
PCMIプロファイルの定義項目については、「8.2 PCMIサービスの定義項目」を参照してください。