AS400 / IBM i の保守で怖いのは、日中の軽いエラーよりも、夜間バッチが止まって翌日の業務開始に影響するケースです。販売管理システムでは、受注、出荷、在庫引当、売上計上、請求、店舗連携、物流連携などがつながっているため、夜間処理のどこかが止まると、翌朝に基幹システムを使えない、外部連携データが届かない、帳票が出ていない、といった状態につながることがあります。
このページでは、AS400の夜間バッチ障害を見つけた時に、どの画面から確認し、どの順番でジョブログまで追うかを現場目線で整理します。単なるコマンド説明ではなく、実際の保守で「投入しただけで安心しない」「MSGWを見つけたら勝手に返答しない」「DやGを安易に返さない」という判断を重視しています。
現場目線の結論 夜間バッチ障害では、まずWRKACTJOBで異常ジョブやMSGWを探し、必要に応じてWRKSBMJOBで投入済みジョブを確認し、最後はジョブログで原因を追います。ジョブを強制終了する、DやGを返す、原因を見ずに再投入する、といった対応は二次災害になりやすいので避けます。
本番障害の初動対応も確認 作業者、環境、影響範囲、ジョブログ、MSGW、データリカバリーをどの順番で見るかは、AS400本番障害の初動対応チェックリスト にまとめています。焦って作業する前の確認用に使えます。
販売管理システム保守の全体像も確認 受注、出荷、在庫、売上、請求、店舗連携、物流連携をAS400保守でどう見るかは、AS400販売管理システム保守ガイド にまとめています。業務影響を見ながら保守するための入口です。
夜間バッチ障害で最初に見る全体フロー
夜間バッチ障害では、いきなりソースやデータを見に行くより、まず「ジョブが動いているのか」「止まっているのか」「MSGWで待っているのか」を確認します。自分なら、最初にWRKACTJOBを見て、暴走ジョブがCPUを食っていないか、MSGWで止まっているジョブがないかを確認します。
| 順番 | 見るもの | 確認すること | 関連記事 |
|---|---|---|---|
| 1 | WRKACTJOB | CPU使用率、MSGW、RUN、DEQW、SELWなどの状態を確認 | WRKACTJOBの見方 |
| 2 | WRKSBMJOB | 自分や該当ユーザーが投入したバッチジョブの状態を確認 | SBMJOB/WRKSBMJOB |
| 3 | WRKJOB | ジョブのスプール、ジョブログ、実行属性を確認 | WRKJOB/DSPJOBLOG |
| 4 | DSPJOBLOG | メッセージ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. ジョブログで原因と結果を分けて読む
ジョブログを見る時は、最後に出ているエラーだけを見て判断しないことが大切です。最後のエラーは、原因ではなく結果として出ていることがあります。自分なら、ログの一番下の重大度やメッセージを見たうえで、少し上に戻って、何でアベンドしたのか、どのプログラムやファイルで止まったのかを追います。
| 見るポイント | 判断すること |
|---|---|
| メッセージID | CPF、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 WRKACTJOBの見方
- AS400 SBMJOB・WRKSBMJOB・DSPJOBDの確認手順
- AS400のジョブログ確認手順
- AS400 MSGW返答判断表
- AS400のデータリカバリー確認手順
- AS400の本番対応で初心者がやってはいけないこと
法人向けのAS400 / IBM i × Codex研修について
AS400 / IBM i の開発・保守でCodexを活用する法人向け研修を行っています。御社PC・御社環境で、RPG/CLソース読解、プログラム調査、改修案作成、動作確認・テストまで実戦形式で学べます。