AS400メッセージID・エラーコード一覧|CPF・RNX・MCH・MSGWを現場目線で整理

AS400 / IBM i の障害調査では、ジョブログに出てくるメッセージIDをどう読むかが大事です。CPFRNXMCHRNFMSGW などの文字を見るだけではなく、「そのメッセージが原因なのか、結果として出ているだけなのか」を分けて考える必要があります。

このページでは、AS400初心者や保守担当者向けに、現場でよく見るメッセージIDの種類と確認順をまとめます。販売管理システムのように、受注、出荷、在庫引当、売上計上、請求、外部連携がつながっている環境では、メッセージIDの見方を間違えると後続処理やリカバリー判断にも影響します。

現場目線の注意 メッセージIDは、単体で結論を出すものではありません。まずは ジョブログ全体の流れ を見て、どの処理で、どのライブラリ、どのファイル、どのジョブが関係しているかを確認します。

AS400のメッセージIDで最初に見る分類

分類よく見る場面最初に確認すること関連記事
CPFファイルオープン、権限、オブジェクト存在、ジョブ制御などのシステム系メッセージジョブログ内で同じCPFがどこから出ているか、直前に別の原因メッセージがないかを見るCPFエラーの調査手順
RNXRPG実行時エラー。配列、桁あふれ、データ変換、再帰的エラーなどプログラム名、ステートメント、直前のCALL関係、同じエラーの繰り返しを確認するRNX8888の対応
MCHマシン・例外系。プログラムやデータ状態が原因で出ることがある単独で判断せず、前後のCPF/RNXや呼び出し元を合わせて確認するジョブログ確認手順
RNFRPGコンパイル時のエラーや警告コンパイルリストの下部、重大度、RNF番号、該当行を確認するコンパイルリストの見方
MSGWジョブがメッセージ待ちで止まっている状態7番で詳細メッセージを確認し、勝手にDやGを返さないMSGWの対応

CPFエラーを見る時の考え方

CPF はAS400の現場でかなりよく見ます。ファイルオープンエラー、権限不足、オブジェクトが存在しない、ジョブ待ち行列やスプール周りなど、範囲が広いのが特徴です。初心者は「CPFが出たから障害」とだけ見がちですが、実際にはその前後に原因があることもあります。

私なら、まずメッセージIDを確認し、ジョブログ全体を検索して、同じメッセージや関連メッセージがどこで出ているかを見ます。ファイルオープン系なら、ライブラリリスト、対象ファイル、コンパイル環境、実行環境の違いを疑います。販売管理システムでは、受注、出荷、在庫、売上など後続処理に影響するため、すぐに止めるかどうかもCL全体を見て判断します。

RNXエラーを見る時の考え方

RNX はRPG実行時のメッセージです。配列の指標エラー、10進数データエラー、変換エラー、再帰的エラーなど、プログラム実行中に起きた問題を追う時に出てきます。RNX8888のような再帰的エラーは、表に出ているメッセージだけでなく、その前に何が起きたかを見ることが大事です。

特にRPG保守では、配列の定義数が少なすぎて、ある日データ件数が増えた時にパンクすることがあります。こういう不具合は、単体テストでフル桁入力や件数増加パターンを見ていないと本番で出ます。RNX系は、プログラム名、該当ステートメント、呼び出し元、入力データの状態をセットで確認します。

MSGWでやってはいけない返答

MSGW は、ジョブがメッセージ待ちで止まっている状態です。WRKACTJOBでMSGWを見つけたら、まず詳細メッセージを確認します。初心者がやりがちで危ないのは、落ち着かずにジョブを強制終了したり、Dを返してしまうことです。

返答意味現場での注意
Cキャンセル処理を止める判断。後続処理やリカバリー方針を確認してから返す
I無視無視してよいメッセージか、ジョブログと処理内容を見て判断する
Rリトライ一時的なロックや状況次第では復旧できる可能性がある
Dダンプを取りキャンセル安易に返すとリトライで復旧できた処理を戻せなくすることがある
G強制的に進める系の返答RPGがこけた状態で後続処理を進める可能性があり、かなり危険

昔、仕事ができない人が勝手にDを返して大惨事になったことがあります。リトライで復旧できたかもしれない処理を、自分の判断で戻せない状態にしてしまう。MSGWは「止まっているから早く何か返す」ではなく、「何を返すと業務データにどう影響するか」を考えるところです。

コンパイル時のRNFは実行時エラーとは分けて考える

RNF は、RPGのコンパイルリストで見るメッセージです。実運用の障害対応で直接見る機会はCPFやRNXほど多くありませんが、開発・保守では重要です。コンパイルリストの一番下で、コンパイルされたか失敗したか、重大度がいくつかを確認します。

重大度40はファイル定義など致命的な問題につながりやすく、重大度30はフィールド定義などの修正で改善できることがあります。RNF7031のような番号を見たら、コンパイルリスト内で番号を検索し、該当箇所にあたりをつけてソースを直し、再コンパイルします。

メッセージIDを見た後の確認順

  1. WRKACTJOBでMSGWや暴走ジョブがないかを見る
  2. 対象ジョブのジョブログを開く
  3. 一番下の重大度や最後のメッセージを確認する
  4. 最後のエラーだけで判断せず、前後のメッセージを追う
  5. ライブラリ、ファイル、プログラム、呼び出し順を確認する
  6. MSGWの場合は、返答前に上長やメンバーへ共有する

関連して読むと理解しやすい記事