実行時間超過への対応

事象説明

    各サーバプロセスの制御スレッドでオペレーションの実行時間を常に監視しています。実行時間の上限を超過した場合、情報出力を行うための警告メッセージ出力機能を提供しています。運用管理ツールで「実行時間の上限」を設定し、かつ「プロセスを強制停止する」設定を行っている場合、オペレーションの処理時間がこの時間を超えると実行中のスレッドの処理を強制終了したのちプロセスを終了しようとします。
    プロセスを終了しようとする時点で他に実行中のスレッドがあった場合、処理が完了するまでプロセス停止を待ち合わせます。待ち合わせる時間はプロセスのストール監視間隔(既定値で600秒)です。待ち合わせる時間を経過しても実行中の場合、そのスレッドの処理を強制終了してプロセス終了(再起動)処理が実行されます。

状況の確認方法

    既定値(プロセス再起動の無の設定)で実行時間超過が起きた場合、イベントログ・syslogにはINFOレベルで以下のメッセージが出力されます。

      OTXM:&ltシステム名>:&ltプロセスグループ名>:&ltプロセスID>: I:1:TPS10-13302 Tx ELAPSED TIME:xx SEC. TX-GROUP &ltプロセスグループ名> &ltプロセスID>
      

    プロセス再起動の有の設定で実行時間超過が起きプロセスが終了した場合、イベントログ・syslogには以下のメッセージが出力されます。

      OTXM:&ltシステム名>:&ltプロセスグループ名>:&ltプロセスID>: E:1:TPS10-13301 Tx TIME OVER ERROR. CODE:1 TX-GROUP &ltプロセスグループ名> &ltプロセスID>
      

    また、クライアントアプリケーションにはNO_RESPONSE(3927)のエラーを返します。

問題の検出方法

    イベントログ・syslogの監視

      TPS10-13301、TPS10-13302で始まるメッセージを監視してください。

採取資料
原因の特定

    イベントログ・syslogに出力される、TPS10-13301、TPS10-13302のメッセージから該当のプロセスグループを特定します。

    (1) 実行時間超過が発生した場合は、システムトレースに実行途中であったオペレーションの情報が以 下のように記録されます。システムトレースについては [ 構築・運用 > ログ > WebOTXのログ > Standard上のアプリケーションのログ出力 > サーバアプリケーショントレース採取 ] を参照してください。

      Error: The following TX execution is unfinished.
      -------------------------------------
      PID ThID TxID StartTime
      -------------------------------------
      03761 00001 QKAAAC 7/15 10:19:09.703
      QKAAAC: LoopBack (IDL:sample/LoopBackSample:1.0;loopback_jsv.jar)
      

    実行時間超過が発生したオペレーションはオペレーション名LoopBack、インタフェース名IDL:sample/LoopBackSample:1.0、モジュール名loopback_jsv.jar であることがわかります。

    (2) AP ログに以下のように出力されます。

      TPS10-13301 Tx TIME OVER ERROR. CODE:x TX-GROUP &ltプロセスグループ名> &ltプロセスID> elptime-over info : TXID=AAABAB,…
      

    このAP ログのTXID から実行時間超過が発生したオペレーションを特定できます。TXID とオペレーション名の関連を調べるためにイベントジャーナルを採取してください。イベントジャーナルは統合運用管理ツールのTP システムを右クリックし、「イベントジャーナルとキュー滞留数の採取」の実行で採取できます。実行すると、${INSTANCE_ROOT}/config/tpsystem/tmp ディレクトリにotx.t2o ファイルが作成され、その中にTXID とオペレーションの対応関係が記載されています。

    該当AP がJava の場合、実行時間超過が発生するとシステムトレースにスタックトレースが記録されます。これより対象コードが特定できます。

回避方法

    原因の究明ができるまでは再起動設定(「TP システム」.「上限設定」-「プロセス障害時の再起動回数」)を大きめにすることで、実行時間超過によってサービス停止とならないようにしてください。

復旧方法

    実際にこの現象が発生してしまった場合の復旧方法について説明します。

    プロセスグループの再起動

      再起動設定をしている場合は自動で再起動されているはずなので復旧は済んでいます。
      再起動回数を使い果たした場合や再起動設定がされていない場合に備え、念のため対象のAP の状態を確認し、停止状態の場合は再起動させてください。

    システムの再起動

      システム全体に影響が及んでしまっている場合は局所的な対応では復旧しない可能性があります。
      その場合はシステム再起動を行なってください。
予防のための対策

    問題のあったオペレーションがそもそもストールなどによって応答の望みがまったくないものなのか(いつまで待っても応答が返らないものなのか)、やむを得ない理由により完了までに時間がかかっていたのかにより、対策は異なります。

    問題のAP の修正

      問題のあったオペレーションがストールなどにより応答の望みがない場合、問題を解決するためにはAP を修正する必要があります。解決までの間は現状のままの設定として、実行時間監視により無応答状態を回避するしかありません。

    実行時間の上限の見直し

      AP に無応答を引き起こす問題がなく、実行時間の上限の設定が短すぎたために本障害になったと考えられる場合は、「オペレーション制御」タブにある「実行時間の上限」を見直してください。実行時間の上限の設定に際しては、運用アシスタントによる実行時間の上限の適正値算出機能をご利用ください。詳細は、 [ 構築・運用 > ドメインの構築 > TPシステム > 運用アシスタント > 実行時間の上限の適正値算出 ] を参照してください。

対象となるエラー事象

    TPS10-13301, TPS10-13302, NO_RESPONSE(3927)


関連情報

    APストールへの対応

    障害の種類から > オペレーション呼び出しでの障害

    障害の種類から > サーバアプリケーションの障害

    TPシステム(Standard)