プロセス突然終了への対応 |
イベントログまたはシスログの確認
リクエスト実行中にプロセスグループのプロセスが突然終了した場合、以下のメッセージが出力されます。
OTXM:<システム名>::<プロセスID>: W:13:TPS15-01107 Process abnormal end. PID=[<プロセスID>], class[<プロセスグループ名>], ped[<アプリケーショングループ名>.ped]
|
TPS15-01217 Get SIGCHLD. pid=<プロセスID>,exit=<プロセス終了コード>, termsig=<シグナル番号>, …
|
イベントログ(アプリケーション、システム)またはシスログ
アプリケーションログ:
${INSTANCE_ROOT}/logs/tpsystem/<アプリケーショングループ名>/<プロセスグループ名>/save/<プロセスグループ名>.<数字>.<PID>.log
システムトレース:
${INSTANCE_ROOT}/logs/tpsystem/<アプリケーショングループ名>/<プロセスグループ名>/save/<プロセスグループ名>_sys.<数字>.<PID>.log
${INSTANCE_ROOT}/config/tpsystem/history.act (sav)
${INSTANCE_ROOT}/config/tpsystem/sysmsg.trc (sav)
${INSTANCE_ROOT}/logs/server.log
${INSTANCE_ROOT}/logs/webotx_agent.log
${INSTANCE_ROOT}/logs/tpsystem/webotx_tpmmgr.log
イベントジャーナル(採取方法は「TPモニタの運用操作 2.39 障害解析」を参照してください)
ワトソンログ (Windows)
core (UNIX)
${AS_INSTALL}/Trnsv/hs_err_pid<プロセスID>.log (Java)
Windowsの場合
ワトソンログに障害情報が残っていないか確認してください。
/opt/WebOTX/Trnsvディレクトリにcoreが出力されていないか確認してください。coreが出力されている場合は、デバッガを使用して解析します。以下に、gdbを使用して確認する手順を示します。
/opt/WebOTX/Trnsvディレクトリにhs_err_pid<プロセスID>.logが出力されていないか確認してください。hs_err_pid<プロセスID>.logにはスタックが出力されています。スタックの一番上のメソッドがJavaのメソッドである場合、Java VMの担当部門に問い合わせてください。
COBOLの実装仕様により、十進例外が発生するとプロセス終了となります。該当の例外が発生していないか調査してください。
history.actに出力されるTPS15-01217のプロセス終了メッセージには、プロセス終了コードやシグナル番号が出ており、終了理由を推測できる場合があります。exit()された場合には、exit=に続く部分にexitコードが入ります。exit() されていない場合には、Windowsでは例外コードがexit=に続く部分に入ります。UNIXでは、シグナルが発生した場合にはtermsig=に続く部分に該当シグナル番号が入ります。
UNIX系OSを使用している場合、ファイルサイズ上限(既定値2GB)により、2GB以上のファイルサイズのcoreを出力することができない可能性があります。
2GB以上のファイルを出力したい場合は次の設定を行い、WebOTXを再起動してください。
Linuxの場合
システムの制限により、core の最大サイズが設定されています。OSのulimitコマンドまたはlimitコマンドを使用して、core のシステム制限の最大サイズを増加してください。 ulimitコマンドまたはlimitコマンドについてはOSのマニュアルをご覧ください。
WebOTXの設定により、core の最大サイズが制限されています。/opt/WebOTX/Trnsv/bin/tpadm2.sh を編集してください。 適切な箇所(例えばファイルの2行目)に次の2行を追加してください。
ulimit -c unlimited
ulimit -f unlimited
注)最大サイズを無制限にする場合の例です。ulimitコマンドについてはOSのマニュアルをご覧ください。
Windows OSでは、OSの設定により、例外発生時のOS側の挙動を設定することができます。
例外発生のダイアログが画面に出力されることがありますが、このダイアログは例外を起こしたプロセスの処理の延長で表示されるため、ダイアログを閉じるまで、例外が発生したプロセスは終了しません。プロセスが終了しない場合、WebOTXの機能でプロセスを再起動できないため、自動復旧しません。
OSの設定により、例外発生時にダイアログを表示させない運用を推奨します。OSの設定であるため、WebOTX以外のプロセスに対する影響を考慮してください。