AS400 / IBM i の障害調査で大事なのは、ジョブログを「最後のエラーだけ見る」のではなく、前後の流れとして読むことです。MSGW、CPF、RNX、RNX8888などのメッセージは、それ単体で結論を出すものではありません。
このページでは、AS400初心者や保守担当者向けに、ジョブログをどう読むかを実例パターンで整理します。実際の顧客情報や本番情報は使わず、匿名化したサンプルとしてまとめています。
現場目線の基本 ジョブログは、原因メッセージと結果メッセージを分けて読みます。最後に出ているエラーは、原因ではなく「結果」として表示されているだけのことがあります。
夜間バッチ障害の確認順もあわせて確認 WRKACTJOB、WRKSBMJOB、ジョブログ、MSGWをどの順番で見るかは、AS400夜間バッチ障害対応フロー にまとめています。投入しただけで安心しない、MSGWを勝手に返さないための実務チェックに使えます。
本番障害の初動対応も確認 作業者、環境、影響範囲、ジョブログ、MSGW、データリカバリーをどの順番で見るかは、AS400本番障害の初動対応チェックリスト にまとめています。焦って作業する前の確認用に使えます。
ジョブログを見る時の基本順
- まずジョブログの一番下を見る
- 重大度とメッセージIDを確認する
- 最後のエラーだけで判断せず、少し上に戻って原因候補を見る
- プログラム名、CALL関係、ファイル名、ライブラリ名を見る
- MSGWの場合は、返答前に詳細メッセージと業務影響を見る
実例1:MSGWになっているジョブを見る
WRKACTJOBで MSGW のジョブを見つけた場合、最初にやることは詳細メッセージの確認です。初心者が危ないのは、MSGWを見つけた瞬間にジョブを強制終了したり、Dを返したりすることです。
ジョブ . . . . . . : TEST001 ユーザー . . . . : TEST01 番号 . . . . . . : 999999 状態 . . . . . . : MSGW 機能 . . . . . . : PGM-TEST001R
この時点では、まだ「何が起きたか」は分かりません。7番で詳細メッセージを確認し、ジョブログ全体を見ます。DやGを返す前に、リトライできる状態なのか、処理を止めるべきなのか、後続処理に影響するのかを確認します。
| 見るところ | 確認すること |
|---|---|
| 詳細メッセージ | 何を要求されているか。C/I/R/D/Gなどの返答候補が何か |
| ジョブログ前後 | MSGWになる前にCPFやRNXが出ていないか |
| 業務影響 | 受注、出荷、在庫、外部連携に影響する処理か |
| 返答判断 | DやGを勝手に返してよい状況か。基本は上長確認 |
実例2:CPFエラーでファイルとライブラリを疑う
CPFエラーでは、ファイルやライブラリの指定違いを疑うことがよくあります。テスト環境では動いたのに本番で落ちる場合、ライブラリリストや実行環境が違うことがあります。
CALL PGM(TEST001R) CPF4101 - ファイル TESTFILE がライブラリー *LIBL に見つからない CPF0000 - MONMSG によりメッセージが処理された
ここで怖いのは、MONMSG CPF0000 によってエラーが握りつぶされ、後続処理が走ってしまうことです。ファイルが見つからないまま後続処理が進むと、データ未作成、古いデータ残り、二重処理などにつながることがあります。
このケースでは、DSPLIBL、WRKOBJ、DSPFFD を使って、対象ファイルとライブラリを確認します。本番作業なら、ライブラリ名は絶対に目視で確認します。
実例3:RNXで配列・数値データを疑う
RNXはRPG実行時エラーを見る入口です。配列、10進数データ、数値変換、ファイル処理などで出ることがあります。販売管理では、商品数、店舗数、明細件数、外部連携件数が増えた時に、今まで通っていた処理が突然落ちることがあります。
CALL PGM(TEST001R) RNX0301 - 配列の指標または範囲に関するエラー プログラム TEST001R で処理が異常終了
この場合、該当行だけを見るのではなく、入力件数、配列定義数、ループ条件、添字の加算条件を確認します。単体テストで通常件数だけ見ていると、本番で件数が増えた時に落ちることがあります。
実例4:RNX8888で直前のメッセージを追う
RNX8888 は、再帰的エラーとして出ることがあります。最後にRNX8888が出ているからといって、そこだけ見ても原因が分からないことがあります。直前のメッセージ、CALL関係、繰り返し出ているログを追います。
CALL PGM(ABCD123R) CALL PGM(ABCD124R) RNX1216 - 数値データに関するエラー RNX8888 - 再帰的エラーが発生
この例では、RNX8888だけを見るのではなく、その前のRNX1216や、どのプログラムから呼ばれているかを見ます。外部連携データ、数値項目、フル桁入力、符号、ブランクなども確認対象です。
実例5:夜間バッチが止まった時に見る順番
販売管理システムの夜間バッチが止まると、翌朝の業務開始に影響することがあります。受注、出荷、在庫引当、売上計上、請求、店舗連携、物流連携などがつながっているためです。
| 順番 | 確認すること | 使う入口 |
|---|---|---|
| 1 | WRKACTJOBでMSGWや暴走ジョブがないか見る | WRKACTJOB |
| 2 | WRKSBMJOBで投入済みジョブの状態を見る | SBMJOB/WRKSBMJOB |
| 3 | 対象ジョブのジョブログを見る | ジョブログ確認 |
| 4 | CPF/RNX/MSGWの種類を確認する | メッセージID一覧 |
| 5 | 再実行できるか、リカバリーが必要かを判断する | データリカバリー |
原因メッセージと結果メッセージを分ける
ジョブログを見る時は、最後に出ているエラーをそのまま原因だと思わないことです。最後に出ているのは、処理が落ちた結果として出ているメッセージかもしれません。原因は、その少し前に出ているファイルエラー、数値エラー、権限エラー、ロック、ライブラリ違いにあることがあります。
私なら、まず一番下の重大度や最後のメッセージを見ます。その後、ジョブログ内を少し上に戻り、何でアベンドしたのかを追います。最後のエラーだけで判断しない。警告とエラーを混同しない。一連のジョブの周辺状況を確認する。この3つはかなり大事です。