AS400 / IBM i のRPG保守で実行時エラーを見る時、RNX で始まるメッセージは重要です。CPFがシステム系のメッセージとして出ることが多いのに対して、RNXはRPGプログラムの実行中に起きた問題を追う入口になります。
このページでは、AS400初心者やRPG保守担当者向けに、RNXエラーを見た時の確認ポイントを整理します。厳密な意味はメッセージ詳細と環境で確認する必要がありますが、現場では「どのプログラムで、どの入力データで、どの呼び出し順で起きたか」を見ることが大切です。
現場目線の基本 RNXは番号だけで結論を出さず、ジョブログの前後、該当プログラム、入力データ、配列、ファイル定義、CALL関係をセットで確認します。最後のRNXだけを見ても、根本原因にたどり着けないことがあります。
実例でジョブログを読みたい場合 CPF・RNX・MSGWが出た時の読み方は、AS400 CPFエラー一覧 にまとめています。最後のエラーだけで判断しない練習になります。
RNXエラーを見る時の最初の確認順
- ジョブログでRNXの前後に出ているメッセージを確認する
- プログラム名、ステートメント、呼び出し元を確認する
- 入力データ、桁数、符号、ブランク、ゼロ、件数を確認する
- 配列、添字、ループ条件、最大件数を確認する
- ファイル定義、DSPFFD、コンパイル環境と実行環境の差を見る
よく見るRNXエラーと確認ポイント
| RNX | 現場で疑うこと | 最初に見るポイント | 関連 |
|---|---|---|---|
RNX0100 | 文字列操作の開始位置または長さが範囲外 | %SUBSTなどの開始位置・長さと、対象文字列の実際の長さを比較する | IBM公式の説明 |
RNX0112 | 日付・時刻・タイムスタンプの値が不正 | 対象値、日付形式、NULL可能フィールドの扱いを確認する | IBM公式の説明 |
RNX0103 | 数値オーバーフロー(RNX0103) | 結果項目の範囲、計算結果、桁数とコンパイル条件を確認する | IBM公式の説明 |
RNX0301 | Javaメソッド呼び出しで例外が発生 | メッセージ詳細のJava例外名、クラス、メソッド、クラスパスを確認する | IBM公式の説明 |
RNX0351 | XML解析中にエラーが発生 | 詳細の解析エラーコードと位置、入力XMLを照合する | IBM公式の説明 |
RNX1216 | 暗黙のファイルOPEN時にエラーが発生 | 詳細に示された原因メッセージ、対象ファイルとライブラリを確認する | IBM公式の説明 |
RNX8888 | サイクル主プロシージャーの再帰呼び出しを検出 | 呼び出しスタックをたどり、直接・間接に同じプロシージャーへ戻る経路を確認する | IBM公式の説明 |
エラー一覧は引くためのものです。引いた後にどう動くかは、別に決めておく必要があります。その初動を扱うのがAS400 / IBM i の実務研修です。
配列系RNXで見るポイント
RPG保守で怖いのは、配列の定義数が少なすぎて、ある日データ件数が増えた時にパンクするケースです。最初は問題なく動いていても、販売管理システムでは商品数、店舗数、明細件数、外部連携件数が増えることで、今まで通っていた処理が突然落ちることがあります。
配列系のRNXを見た時は、単に該当行だけを直すのではなく、配列の最大件数、ループ条件、入力データ件数、終了条件を確認します。単体テストでは、通常件数だけでなく、件数を増やしたパターンを見ておくと事故を減らせます。
10進数・数値変換系RNXで見るポイント
10進数データエラーや数値変換系のRNXは、単純にテスト不足で出ることがあります。数字項目に想定外の文字が入っている、ブランクが入っている、符号や桁数が合っていない、外部連携データの形式が違う、というようなケースです。
販売管理では、数量、金額、単価、税額、在庫数、発注数、売上金額など、数値項目が多くあります。フル桁入力テスト、ゼロ、マイナス、最大桁、外部CSV連携データなどを確認していないと、本番でRNXとして出ることがあります。
RNX8888は前後の流れを見る
RNX8888 は、ILE RPGのサイクル主プロシージャーで再帰呼び出しが検出されたことを示します。自身を直接呼ぶ場合だけでなく、別の処理を経由して再び呼び戻される場合もあります。一般的な「二次エラー」の番号ではありません。
発生箇所と呼び出しスタックを対応させ、呼び戻しの経路と条件を確認します。サブプロシージャーなど再帰を許す構成もあるため、RPGの再帰呼び出しがすべて禁止されているとは考えません。
RNXエラーで単体テストを見直す
RNXが出た時は、プログラム修正だけで終わらせず、単体テストの見直しも必要です。仕様通りに動くか、パターンテストを行ったか、フル桁入力を見たか、データ件数を増やしたか、外部連携データを確認したかを見るべきです。
エビデンスだけきれいに残っていても、実際に動かしてみたら結果が違うことがあります。プログラムを直したら再テストする。これは基本ですが、現場ではここを手抜きすると後工程でみっともない不具合になります。
RNX調査で一緒に読む記事
RNX系の代表例としてRNX8888を詳しく追う場合は、RNX8888再帰的エラー対応 を確認してください。CPF、MSGW、MCHを含めた入口は AS400メッセージID・エラーコード一覧 です。
RNXの前後に出ているCPF・MSGWも見る
RNXはRPGの実行時エラーとして見ますが、直前のCPFや後続のMSGWが本当の入口になることもあります。ファイル・権限・ライブラリ系はCPFエラー一覧、応答判断はAS400 MSGWとは?原因確認・返答手順と夜間バッチのリラン判断、全体の入口はメッセージID・エラーコード索引で確認します。
RNXエラー調査とあわせて確認したい手順
RNXエラーは番号だけで判断せず、ジョブログ、呼び出し元、RPG実行時のデータ、確認コマンドを順番に見ます。
10進数データエラーの確認順
10進数データエラーでは、まずRNX系の実行時エラーとして、どのプログラム・行番号・フィールドで数値変換に失敗したかを分けて確認します。画面に出た文言だけで判断せず、ジョブログ、ダンプリスト、入力ファイル、外部連携CSV、桁数・小数桁、空白や記号の混入を同じ順番で見ます。
- 最初の確認順は CPFエラーとジョブログ確認
- 実例で流れを見るなら AS400 CPFエラー一覧|よく見るCPFメッセージと確認ポイント
- ファイル定義と実データを見るなら DSPFFD・DSPPFMの違い
RNXエラーを再発防止メモに変える
RNXエラーは、原因をその場で直して終わると、同じ調査が繰り返されやすくなります。発生プログラム、入力値、桁あふれやデータ型、直前の処理を整理しておくと、再発時の判断と引き継ぎが楽になります。
- ジョブログの読み方は、AS400ジョブログ初心者向け確認手順を参照してください。
- CPF系の確認も必要なら、AS400 CPFエラーのミニ辞典も確認できます。
- 原因説明を若手が書けるようにするなら、AS400 / IBM i 現場向けCodex実戦研修で調査手順を練習できます。
- 原因調査が止まる場合は、お問い合わせからエラーIDと発生条件を共有してください。