AS400 / IBM i の夜間バッチが MSGW で止まった時、急いで応答したくなります。しかし、応答値の意味を確認しないまま進めると、処理を止めすぎたり、危険な状態で続行したりすることがあります。
この記事では、夜間バッチがMSGWで止まった時の初動対応を、現場の実例に近い形で整理します。
想定する状況
| 項目 | 例 |
|---|---|
| 発生時刻 | 深夜2時台 |
| 状態 | WRKACTJOBで対象ジョブがMSGW |
| 処理 | 売上締め前の集計バッチ |
| 影響 | 後続の請求、帳票、外部連携が遅れる可能性 |
まず見るコマンド
WRKACTJOB WRKJOB JOB(123456/BATCH/SALESCLS) DSPJOBLOG WRKSPLF
応答前に確認すること
| 確認項目 | 理由 |
|---|---|
| メッセージID | 何に対する応答待ちかを判断する |
| 応答候補 | C、I、R、Dなどの意味を確認する |
| 対象プログラム | どのRPG/CLで止まったかを見る |
| 対象ファイル | 未検出、ロック、権限、データ異常を疑う |
| 後続ジョブ | 止めるとどこまで遅れるかを見る |
| 途中更新 | 再実行してよい状態かを判断する |
よくある判断
応答値は環境やメッセージによって意味が変わるため、必ずメッセージ本文とヘルプを確認します。一般論として、再試行、無視、取消、ダンプ取得などの選択肢がありますが、業務更新が絡む場合は「続行できるか」より「続行して業務的に正しいか」を見ます。
やってはいけない対応
- メッセージIDを控えずに応答する
- 応答候補の意味を確認せずにCやIを返す
- 後続ジョブの有無を確認せずに再実行する
- 途中更新や出力済みファイルを見ずにリランする
対応メモの例
| 項目 | 残す内容 |
|---|---|
| ジョブ | ジョブ名、ユーザー、ジョブ番号 |
| MSGW | 発生時刻、メッセージID、応答候補 |
| 判断 | 応答した値、判断理由、承認者 |
| 影響 | 後続ジョブ、帳票、外部連携、再実行有無 |
関連して読む記事
バッチ全体の確認は AS400バッチ処理の確認手順、ジョブログの読み方は ジョブログ確認手順、CLのMONMSGは AS400のCLとは を確認してください。
夜間MSGWは、応答より先に止まった位置を記録する
夜間バッチがMSGWで止まっている時は、早く動かしたい気持ちが先に出ます。しかし、応答だけを急ぐと、翌朝になって「どこで止まったのか」「どのデータまで処理済みなのか」が分からなくなることがあります。まずは、ジョブ名、メッセージID、発生時刻、対象ファイル、直前ステップを記録してから判断します。
| 見る順番 | 確認すること | 判断のポイント |
|---|---|---|
| 1 | MSGWのメッセージIDと応答候補 | 安易にI/C/Rを選ばず、メッセージ文を読む |
| 2 | ジョブログの直前ステップ | エラー原因がファイル、権限、ロック、データなのかを見る |
| 3 | 処理済みデータの範囲 | 再実行時に二重処理が起きないか確認する |
| 4 | 後続ジョブの有無 | 締め、EDI、帳票、連携へ影響するかを見る |
| 5 | 教育・手順化 | 研修内容を見るで確認順を型にする |
MSGW対応は、知っている人だけが判断する状態にすると属人化しやすい領域です。社内手順としては、「応答してよい条件」「一度止める条件」「担当者へ確認する条件」を分けておくと、夜間や休日の判断ミスを減らせます。CodexやAIを使う場合も、メッセージIDだけでなく、直前のジョブログと処理目的をセットで渡す方が現場に合った整理になります。
まとめ
MSGWは、ジョブが判断を待って止まっている状態です。応答前にメッセージID、応答候補、対象プログラム、対象ファイル、後続ジョブ、途中更新を確認すると、安全に判断しやすくなります。
