AS400ジョブログ実例集|CPF・RNX・MSGWをどう読むか

AS400 / IBM i の障害調査で大事なのは、ジョブログを「最後のエラーだけ見る」のではなく、前後の流れとして読むことです。MSGW、CPF、RNX、RNX8888などのメッセージは、それ単体で結論を出すものではありません。

このページでは、AS400初心者や保守担当者向けに、ジョブログをどう読むかを実例パターンで整理します。実際の顧客情報や本番情報は使わず、匿名化したサンプルとしてまとめています。

現場目線の基本 ジョブログは、原因メッセージと結果メッセージを分けて読みます。最後に出ているエラーは、原因ではなく「結果」として表示されているだけのことがあります。

ジョブログを見る時の基本順

  1. まずジョブログの一番下を見る
  2. 重大度とメッセージIDを確認する
  3. 最後のエラーだけで判断せず、少し上に戻って原因候補を見る
  4. プログラム名、CALL関係、ファイル名、ライブラリ名を見る
  5. 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 によってエラーが握りつぶされ、後続処理が走ってしまうことです。ファイルが見つからないまま後続処理が進むと、データ未作成、古いデータ残り、二重処理などにつながることがあります。

このケースでは、DSPLIBLWRKOBJDSPFFD を使って、対象ファイルとライブラリを確認します。本番作業なら、ライブラリ名は絶対に目視で確認します。

実例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:夜間バッチが止まった時に見る順番

販売管理システムの夜間バッチが止まると、翌朝の業務開始に影響することがあります。受注、出荷、在庫引当、売上計上、請求、店舗連携、物流連携などがつながっているためです。

順番確認すること使う入口
1WRKACTJOBでMSGWや暴走ジョブがないか見るWRKACTJOB
2WRKSBMJOBで投入済みジョブの状態を見るSBMJOB/WRKSBMJOB
3対象ジョブのジョブログを見るジョブログ確認
4CPF/RNX/MSGWの種類を確認するメッセージID一覧
5再実行できるか、リカバリーが必要かを判断するデータリカバリー

原因メッセージと結果メッセージを分ける

ジョブログを見る時は、最後に出ているエラーをそのまま原因だと思わないことです。最後に出ているのは、処理が落ちた結果として出ているメッセージかもしれません。原因は、その少し前に出ているファイルエラー、数値エラー、権限エラー、ロック、ライブラリ違いにあることがあります。

私なら、まず一番下の重大度や最後のメッセージを見ます。その後、ジョブログ内を少し上に戻り、何でアベンドしたのかを追います。最後のエラーだけで判断しない。警告とエラーを混同しない。一連のジョブの周辺状況を確認する。この3つはかなり大事です。

関連して読む記事