
RNX8888で最初に見るポイント

RNX8888は、ILE RPGのサイクル主プロシージャーが再帰的に呼び出されたことを示すエスケープ・メッセージです。単に例外処理中に別のエラーが出たことを意味する番号ではありません。IBM公式の実行時の違いでは、サブプロシージャーの再帰は許されると説明されています。
呼び出し関係の想定例として、処理AがBを呼び、Bから実行中のAへ戻る経路を考えます。通常処理だけでなく、エラー処理やトリガーから呼び戻される経路も調べます。これは説明用の例であり、掲載画面の原因をこの経路と断定するものではありません。
- ジョブログでRNX8888の直前にあるCPF/RNXメッセージを見る
- CALL関係とプログラムスタックを確認する
- エラー処理やログ出力から、まだ戻っていないサイクル主プロシージャーを呼び直していないか見る
- ファイル更新が絡む場合は、対象ファイルとキーを確認する
- 本番対応では、ジョブ終了、リラン、データ補正を急いで決めない
ジョブログの基本的な読み方はAS400のジョブログ確認手順で、CPFメッセージの入口はAS400 CPFエラー・メッセージID索引で整理しています。症状から探す場合はAS400トラブル逆引きも使えます。
RNX8888の直前メッセージから追う例
RNX8888の詳細にある再帰呼び出しの説明を起点に、同じジョブの呼び出しスタックとソースを照合します。直前の別エラーが呼び戻しのきっかけになったかも確認しますが、先行エラーがあるとは限りません。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 時系列 | RNX8888より前のCPF/RNXと送信元プログラムを記録する | 最初の異常と後続エラーを分ける |
| 呼び出し | プログラム/プロシージャーのCALL関係とエラー処理経路を整理する。EXSRによるサブルーチン実行とは区別する | 同じ処理へ戻る条件をソースで確認する |
| 入力 | 発生データ、パラメータ、再現条件、直前変更を比較する | 特定データだけか全件かを分ける |
修正後は正常系だけでなく、元のエラー条件を再現し、エラー処理が再び自分自身を呼ばないことを確認します。調査メモには、確認したプログラムと未確認の経路を残します。
RNX8888を相談する前に残す情報
本番でRNX8888が発生したら、発生時刻、ジョブ識別情報、対象プログラム・プロシージャー、呼び出しスタック、直前のメッセージ、業務影響を残します。例外処理中に発生した場合も、実際にどこで再帰呼び出しになったかを確認します。返信や再実行は、途中更新と承認条件を確認して判断します。
| 残す情報 | 確認する記事 |
|---|---|
| 本番影響と初動判断 | 本番トラブル初動チェックリスト |
| QSYSOPRやMSGWの状態 | MSGWの確認手順 |
| 症状別の確認入口 | AS400トラブル逆引き |
| 改修前の影響範囲 | RPG/CLの影響調査チェックリスト |
再帰呼び出しの仕様を確認する
サブプロシージャーや線形主プロシージャーの再帰と、サイクル主プロシージャーへの再入は扱いが違います。IBM公式:Recursive Callsで対象の種類を確認してください。
