![[z/OS]](../images/ngzos.gif)
タイムアウト条件: 診断データの分析
以下のガイドラインは、どのタイムアウト条件が発生したのかを判別する手掛かりとなる診断データを、SVC ダンプから検出する手順を示しています。
EC3 で異常終了したタスクを検出することから開始する必要があります。
- 次のコマンドを入力して、
タイムアウトになったサーバントの TCB サマリーのフォーマット設定を行います。
ip summ format asid(x' address ')
ここで、address はサーバントのアドレス・スペース ID です。
EC3 完了コードの TCB を検出します。 「main」スレッド上の EC3 完了コードは無視してください。 このスレッドは、サマリー・フォーマットでリストされている 4 番目の TCB (3 つの MVS™ TCB の直後の TCB) です。 WebSphere® のメイン・スレッドは、BBO_BOA::impl_is_ready で待機しているスレッドです。 このスレッド上にこれまでにディスパッチされたアプリケーション要求はありません。 したがって、タイムアウトになる要求はありません。 タイムアウト処理中に、 サーバー領域のメイン・スレッドも、 アドレス・スペースを停止させるメカニズムとして EC3 で異常終了します。 したがって、EC3 完了コードの理由がメイン・スレッドに出力される場合があります。 これは、タイムアウトの原因ではなく、単なるタイムアウト処理の結果です。
- TCB サマリーに EC3 完了コードがない場合は、systrace を検索します。
比較対象となる他のタイム・スタンプが GMT 時刻で表されるので、systrace を GMT 時刻でフォーマット設定してください。
GMT 時刻でフォーマット設定するには、次のコマンドを入力します。
ip systrace all time(gmt)
systrace では短い時間しかカバーしていないため、systrace では EC3 異常終了が見つからない場合もあります。
- EC3 異常終了の発生時刻を調べるために ip verbx mtrace または syslog を検索してみることもできます。 この時刻は、 タイムアウト値に到達した要求の「終了」時刻 (GMT 時刻) を判別する場合に必要となります。
EC3 異常終了に関連した理由コードを調べて、どのタイムアウト値が有効となっているのか判断できます。
理由コード | 説明 |
---|---|
04130002 | トランザクションのタイムアウトが発生したため、 コントローラーは、このサーバント領域について ABTERM を発行しました。 ディスパッチされたコードが短いループ内に存在していた可能性があります。 |
04130003 | コントローラーの要求をサーバント領域に移動しようとしてハングしたため、 コントローラーは、このサーバント領域について ABTERM を発行しました。 ターゲット要求はタイムアウトになりましたが、 サーバントはその時点で要求をコピーしていました。 コントローラーは、ABTERM を発行して処置を行うまで、 定期的間隔でサーバントの進行状況を検査していました。 |
04130004 | WLM キューのタイムアウトが発生したため、 コントローラーは、このサーバント領域について ABTERM を発行しました。 ディスパッチされたコードが短いループ内に存在していた可能性があります。 |
04130005 | トランザクションのタイムアウトが発生したため、 コントローラーは、このサーバント領域について ABTERM を発行しました。 トランザクションはタイムアウトになりましたが、 この時点でトランザクションに関連する要求は見つかりませんでした。 トランザクションに関連したサーバントを終了します。 |
04130006 | コントローラー・スレッドで要求を処理中に問題が発生しました。 要求は WLM のキューに入れられ、サーバント領域と関連付けられています。 要求を完全にクリーンアップするには、関連付けられたサーバント領域を終了させる必要があります。 |
04130007 | HTTP OUTPUT のタイムアウトが発生したため、 コントローラーは、このサーバント領域について ABTERM を発行しました。 ディスパッチされたコードが短いループ内に存在していた可能性があります。 |
メソッド名を検索して、それが
httpRequest,
httpsRequestまたは
DispatchbyURI
その他のメソッドであったかどうかを判別します。要求が、HTTP または HTTPS トランスポート・ハンドラー
を介して着信した要求というわけではない場合、
protocol_http_output_timeout(HTTP) タイムアウト値および
protocol_https_timeout_output(HTTPS) タイムアウト値は、要因になりません。言い換えれば、要求が
DispatchbyURIメソッドである場合、 その要求は RMI/IIOP プロトコルを介して受信されるので、
protocol_http変数が影響を及ぼしていることはありません。
次に、IPCS verbexit LEDATA を CEEDUMP または NTHREADS オプションを指定して使用すれば、その要求のスタック・トレースを取得することができます。