Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


メッセージ

CMPR2 および FLAGMIG コンパイラー・オプションを指定してプログラムをコンパイルす ると、ON OVERFLOW 句を指定するすべての CALL ステートメントに対してメッセージが出されます。以下のメッセージが出されます。
IGYPS2012-W
**MIGR** 「NOCMPR2」コンパイラー・オプションのもとでは、「CALL」ステートメントの「ON OVERFLOW」句は、オーバーフロー条件以外の場合も実行されることがあります。
この変更の影響を受ける事態の例を示すプログラム部分を以下に示します。
PERFORM UNTIL ALL-ACCOUNTS-SETTLED
⋮
  CALL "SUBPROGA" USING CURRENT-ACCOUNT
    ON OVERFLOW
       CANCEL "SUBPROGB"
       CALL "SUBPROGA" USING CURRENT-ACCOUNT
       END-CALL
  END-CALL
⋮
  CALL "SUBPROGB" USING CURRENT-ACCOUNT
    ON OVERFLOW
       CANCEL "SUBPROGA"
       CALL "SUBPROGB" USING CURRENT-ACCOUNT
       END-CALL
  END-CALL
⋮
END-PERFORM

上記のプログラムを実行すると、SUBPROGA と SUBPROGB を同時に使用可能ストレージに 収容することができない場合があります。ON OVERFLOW 句は、このような事態に対処し、他のサブプログラムによって占有されて いるストレージを解放するために使用します。

CMPR2 の動作を行うプログラムのもとで実行する場合は、「ストレージ不足」エラーの場合にのみ ON OVERFLOW 条件になるため、上記のような指定は適切です。

NOCMPR2 のもとで実行する場合は、「ストレージ不足」エラー以外の場合でも ON OVERFLOW 条件になることがあるため、2 回目の呼び出し (ON OVERFLOW 句内部の) も失敗する可能性があります。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)