デバッグおよび例外処理

  1. DEBUG 命令は、RPG IV ではサポートされていません。
  2. ILE ソース・デバッガーを使用している時には、停止点の設定に、 RPG タグ、サブルーチン名、または *GETIN や *DETC などのサイクル内の点を 使用することはできません。
  3. 機能チェックは、OPM RPG と ILE RPG の両方によって通常ジョブ ・ログに残ります。しかし ILE RPG において、エラー標識、'E' 拡張、 または *PSSR エラー・ルーチンがコーディングしてあると、機能チェックは現れません。

    標識、'E' 拡張、*PSSR などがあると機能チェックができませんので、機能チェックを削除するような コードがあれば取り除いてください。

  4. 80 バイトより後に PSDS を埋め込む情報を入手するのには時間を 要するので、LR がオンによる呼び出しパフォーマンスは、 PSDS を指定しないことによって、あるいは PSDS を 80 バイトより 長くしないことによって大きく改善されます。 PSDS がコーディングされていないか、またはプログラムが開始した日付および 時刻を入れるのに短すぎる場合には、これらの 2 つの値は定様式ダンプでは 使用可能ではありません。 他のすべての PSDS の値は、PSDS の長さに関係なく使用可能です。
  5. ILE RPG 照会メッセージの接頭部は RNQ であるため、 デフォルト応答リストを使用する場合、既存の RPG 項目とほぼ同じ RNQ 項目を追加 しなければなりません。
  6. OPM で、CL プログラムが RPG プログラムの後に MONMSG を 呼び出す場合、この RPG プログラムが通知メッセージまたは状況メッセージを 受け取っても、CL MONMSG はこの通知メッセージも状況メッセージも 処理しません。 ILE CL から ILE RPG を呼び出す場合に、両方が同一活動化グループ内にある ときは、ILE CL MONMSG はこの通知または状況メッセージを処理し、 RPG プロシージャーは RPG エラー・メッセージを出さずにただちに停止します。 詳細については、ILE CL が通知および状況メッセージを監視する際の問題を参照してください。
  7. ILE ソース・デバッガーを使って変数を表示する時、次のような場合は 結果に信頼が置けません。
  8. ユーザーの RPG III プログラムにパラメーター不一致の問題がある場合 (例えば、長さ 20 のパラメーターを予想しているプログラムに対して長さ 10 のパラメーターを渡し、呼び出し先プログラムが 20 バイトすべてを変更するような場合)、ユーザーのプログラムは記憶域破壊の問題に遭遇することになります。 破壊される記憶域がそのプログラムの実行にとって重要でない場合には、この問題は必ずしもエラーになるとは限りません。

    このプログラムが RPG IV に変換される場合、記憶域のレイアウトは異なる可能性があり、破壊された記憶域がプログラムによって使用されます。 この結果、予期しない例外、例えば SETLL などのファイル操作の際の例外 MCH3601 などが発生する場合があります。 ユーザーのアプリケーションとは関係がないと思われる疑わしいエラーに遭遇した場合は、すべての呼び出し命令のパラメーターをチェックして、パラメーターがすべて正しい長さであることを確認する必要があります。

  9. OPM では、プログラマーがプログラムに対して *USE 権限を持っている場合に定様式ダンプを実行できます。 ILE では、定様式ダンプを実行するには、プログラムまたはサービス・プログラムに対して *CHANGE 権限を持っている必要があります。