AS400夜間バッチ障害対応フロー|WRKACTJOB・WRKSBMJOB・ジョブログで見る順番

AS400 / IBM i の保守で怖いのは、日中の軽いエラーよりも、夜間バッチが止まって翌日の業務開始に影響するケースです。販売管理システムでは、受注、出荷、在庫引当、売上計上、請求、店舗連携、物流連携などがつながっているため、夜間処理のどこかが止まると、翌朝に基幹システムを使えない、外部連携データが届かない、帳票が出ていない、といった状態につながることがあります。

このページでは、AS400の夜間バッチ障害を見つけた時に、どの画面から確認し、どの順番でジョブログまで追うかを現場目線で整理します。単なるコマンド説明ではなく、実際の保守で「投入しただけで安心しない」「MSGWを見つけたら勝手に返答しない」「DやGを安易に返さない」という判断を重視しています。

現場目線の結論 夜間バッチ障害では、まずWRKACTJOBで異常ジョブやMSGWを探し、必要に応じてWRKSBMJOBで投入済みジョブを確認し、最後はジョブログで原因を追います。ジョブを強制終了する、DやGを返す、原因を見ずに再投入する、といった対応は二次災害になりやすいので避けます。

夜間バッチ障害で最初に見る全体フロー

夜間バッチ障害では、いきなりソースやデータを見に行くより、まず「ジョブが動いているのか」「止まっているのか」「MSGWで待っているのか」を確認します。自分なら、最初にWRKACTJOBを見て、暴走ジョブがCPUを食っていないか、MSGWで止まっているジョブがないかを確認します。

順番見るもの確認すること関連記事
1WRKACTJOBCPU使用率、MSGW、RUN、DEQW、SELWなどの状態を確認WRKACTJOBの見方
2WRKSBMJOB自分や該当ユーザーが投入したバッチジョブの状態を確認SBMJOB/WRKSBMJOB
3WRKJOBジョブのスプール、ジョブログ、実行属性を確認WRKJOB/DSPJOBLOG
4DSPJOBLOGメッセージID、重大度、エラー前後の流れを確認ジョブログ確認手順
5業務影響受注、出荷、在庫、外部I/F、翌日業務への影響を確認データリカバリー確認手順

1. WRKACTJOBでMSGWと暴走ジョブを見る

WRKACTJOBは、AS400上で動いているジョブを一覧で見る入口です。夜間バッチが怪しい時は、まずここでCPU使用率が異常に高いジョブがないか、MSGWで待っているジョブがないかを見ます。たまにWRKACTJOBを開いてF5で画面更新だけしている人がいますが、それだけでは意味がありません。状態を見て、次に何を調べるかを決めるために使います。

WRKACTJOB

状態の例:
RUN   実行中
DEQW  待機中
SELW  選択待ち
MSGW  メッセージ待ち

特に見るべきなのはMSGWです。MSGWは、ジョブがメッセージ返答待ちで止まっている状態です。販売管理システムで外部I/Fや夜間バッチがMSGWになっていると、翌朝に店舗連携、物流連携、帳票出力、会計連携などへ影響する可能性があります。

2. MSGWを見つけても勝手に返答しない

MSGWを見つけた時に一番危ないのは、原因を見ずにジョブを強制終了したり、DやGを返してしまうことです。初心者がやりがちな危ない対応として、WRKACTJOBから4番でジョブを強制終了してしまうことがあります。まず落ち着いて、ジョブログを見て、何が起きているのかを把握します。

返答意味現場での考え方
Cキャンセル処理を止める判断。後続影響を確認してから使う
I無視無視して続行する判断。安全に進めてよい根拠が必要
Rリトライ一時的なロックや待ちなら復旧できる可能性がある
Dダンプを取ってキャンセルリトライできる可能性を消すことがあるため、勝手に返さない
G後続へ進める系の返答RPGがこけた状態で強引に進めるような危険があり、特に注意

昔、仕事ができない人が勝手にDを返して大惨事になったことがあります。リトライで復旧できたかもしれない処理を、Dでキャンセルしてしまうと、その後のリカバリーが難しくなることがあります。MSGWは「返せば終わり」ではありません。返答する前に、必ずジョブログと業務影響を見ます。

MSGWの返答判断は、AS400 MSGW返答判断表 にまとめています。C/I/R/D/Gの意味だけでなく、若手がやりがちな危険操作も確認しておくと安全です。

3. WRKSBMJOBで投入済みジョブを確認する

SBMJOBは、バッチ処理を投入するコマンドです。画面でプログラムをCALLすると、自分の画面はその処理が終わるまで待ちになります。一方でSBMJOBを使うと、処理はバッチジョブとして投入され、自分の画面はすぐ使えるようになります。

オンライン実行の例:
CALL PGM(TEST001R)

バッチ投入の例:
SBMJOB CMD(CALL PGM(TEST001R)) JOB(TEST001)

ここで初心者がやりがちなのは、SBMJOBで投入した時点で「処理が終わった」と思ってしまうことです。実際には、ジョブはQBATCHなどのサブシステム内で動きます。投入しただけでは完了ではありません。WRKSBMJOBやWRKACTJOBで、RUNなのか、MSGWなのか、終了しているのかを確認します。

WRKSBMJOB *JOB を使うと、自分が投入したジョブを確認できます。そこからジョブログを見ることもできます。夜間バッチでは、投入済みジョブが止まっていないか、終わったつもりのジョブがアベンドしていないかを見るために使います。

4. ジョブログで原因と結果を分けて読む

ジョブログを見る時は、最後に出ているエラーだけを見て判断しないことが大切です。最後のエラーは、原因ではなく結果として出ていることがあります。自分なら、ログの一番下の重大度やメッセージを見たうえで、少し上に戻って、何でアベンドしたのか、どのプログラムやファイルで止まったのかを追います。

見るポイント判断すること
メッセージIDCPF、RNX、MCHなど、どの種類のエラーか
重大度警告なのか、処理停止に近いエラーなのか
プログラム名どのRPG/CLで止まったのか
ファイル名・ライブラリ名対象環境や参照先が間違っていないか
エラー前後のメッセージ原因メッセージと結果メッセージを切り分ける

メッセージIDの見方は、AS400メッセージID・エラーコード一覧、CPF系はCPFエラー一覧、RNX系はRNXエラー一覧にも整理しています。

5. 販売管理で夜間バッチが止まると怖い処理

販売管理システムでは、夜間バッチが止まると、翌日業務にそのまま影響することがあります。受注、発注、出荷、在庫引当、売上計上、請求、店舗連携、物流連携などは、ひとつの処理だけで完結していないことが多いです。どこかが止まると、後続処理に影響します。

処理止まった時の怖さ最初に見ること
受注連携翌日の出荷や在庫引当に影響する連携データ作成済みか、後続バッチが動いたか
出荷処理物流側へデータが渡らない可能性がある外部I/F、帳票、出荷指示データ
在庫引当在庫数や引当状態に差異が出る可能性がある対象ファイル、更新件数、再実行可否
売上計上会計連携や請求に影響する計上済みデータ、二重計上リスク
店舗・物流連携外部システムとの送受信が止まるI/Fファイル、送受信履歴、再送可否

現場では、バックオフィス系よりも、まず商品が客に届くところ、受注や発注が動くところを優先して確認します。もちろんシステムによりますが、販売管理では「どの業務が止まると翌朝困るか」を意識して調査順を決めます。

6. 再投入・リカバリー前に確認すること

夜間バッチが止まった時、すぐ再投入すればよいとは限りません。途中までデータが作られている場合、再投入で二重作成になることがあります。逆に、前処理が終わっていないのに後続だけ動かすと、古いデータや不完全なデータを元に処理してしまうことがあります。

  • 対象ジョブがどこまで進んだか
  • 対象ファイルにデータが作られているか
  • 後続処理が動いているか、止まっているか
  • 再投入して二重処理にならないか
  • リカバリーSQLや手作業更新が必要か
  • ライブラリリスト、対象ファイル、実行環境が正しいか

データリカバリーが必要な場合は、必ず影響範囲、対象ファイル、実施内容、実行環境を整理します。特にSQLでデータ修正をする場合は、ライブラリ名の確認が重要です。詳しくはAS400のデータリカバリーで焦らないための確認手順にまとめています。

7. 若手に伝えたい夜間バッチ対応の注意点

若手に夜間バッチ対応を教えるなら、まず「MSGWを見つけたら上長に報告」と伝えます。今どきは監視や検知システムで自動的にメールが届く仕組みを作っている現場も多いですが、それでも人が見るべき判断は残ります。

危ないのは、焦って勝手にDを返す、ジョブを強制終了する、投入しただけで完了したと思い込む、ジョブログを見ずに再実行する、といった行動です。夜間バッチは、単体のプログラムだけでなく、翌日の業務全体につながっています。落ち着いて、ジョブ、ログ、業務影響、再実行可否の順に確認します。

夜間バッチ障害対応チェックリスト

チェック確認内容
ジョブ状態WRKACTJOBでRUN/MSGW/DEQW/SELWを確認したか
投入状況WRKSBMJOBで投入済みジョブを確認したか
ジョブログ最後のエラーだけでなく、前後の流れを見たか
業務影響受注、出荷、在庫、外部I/F、翌日業務への影響を見たか
返答判断C/I/R/D/Gを勝手に返していないか
再投入判断二重処理、途中データ、後続処理への影響を確認したか
環境確認ライブラリリスト、対象ファイル、本番/テスト環境を確認したか
共有ジョブ名、ユーザー、番号、メッセージID、判断内容を共有したか

関連して読む記事

法人向けのAS400 / IBM i × Codex研修について

AS400 / IBM i の開発・保守でCodexを活用する法人向け研修を行っています。御社PC・御社環境で、RPG/CLソース読解、プログラム調査、改修案作成、動作確認・テストまで実戦形式で学べます。