AS400 WRKACTJOBでCPUが高い・ジョブが止まる時の確認ポイント

AS400 / IBM i の運用中に「処理が遅い」「画面が返ってこない」「CPUが高い」「特定ジョブが止まって見える」と言われた時、最初に開くことが多いのが WRKACTJOB です。ただし、WRKACTJOBだけを見てENDJOBすると、原因を失ったり、業務処理を壊したりすることがあります。

この記事では、WRKACTJOBでCPUが高いジョブや応答待ちのジョブを見た時に、DSPJOB、WRKJOB、MSGW、ジョブログ、サブシステム、ジョブキューへ確認を広げる手順を整理します。

WRKACTJOBで最初に見る項目

  • CPU率が高いジョブ名、ユーザー、ジョブ番号
  • 状態が RUN、TIMW、MSGW、LCKW などになっていないか
  • サブシステムとジョブタイプ
  • 同じ処理が複数並んでいないか
  • 直前に投入されたバッチ、SQL、データ転送、帳票処理

すぐにENDJOBしない

CPUが高いジョブは異常とは限りません。夜間バッチ、集計SQL、帳票作成、バックアップ、再編成処理など、負荷が出る前提の処理もあります。まずDSPJOBやWRKJOBでジョブログ、ライブラリリスト、実行中プログラム、メッセージ待ちを確認します。

ジョブがMSGWの場合は AS400 MSGWの確認ポイント、バッチ投入後の確認は SBMJOB・WRKSBMJOB・DSPJOBDの確認 も合わせて見てください。

CPU高騰時の切り分け

  • 単一ジョブだけ高いのか、全体的に高いのか
  • 同じユーザー、同じプログラム、同じSQLが繰り返されていないか
  • ODBC/JDBCやACSのデータ転送から大量処理が流れていないか
  • ロック待ち、メッセージ待ち、ジョブキュー滞留がないか
  • 本番処理中なら、停止判断前に業務担当と影響範囲を確認したか

関連コマンドへ広げる

WRKACTJOBで候補を見つけたら、DSPJOBで詳細を確認し、WRKJOBでジョブ操作、WRKOUTQで帳票滞留、WRKJOBQで投入待ちを確認します。コマンドの入口は AS400コマンド逆引き にまとめています。

運用記録に残すこと

  • 発生日時、ジョブ名、ユーザー、ジョブ番号
  • WRKACTJOBで見た状態とCPU率
  • ジョブログの前後メッセージ
  • 停止、保留、再投入をした場合の時刻と理由
  • 再発時に見る画面と担当者

AS400のジョブ調査は、画面で見えた状態をその場で終わらせず、次に同じことが起きた時に比較できる形で残すことが大切です。

関連: サブシステム停止・開始を伴う作業は、対象業務、JOBQ、WRKACTJOB、QSYSOPR、DSPLOG/QHSTを確認してから進めます。事故を防ぐ確認ポイントは AS400 サブシステム停止・開始の確認ポイント にまとめています。