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 句内部の) も失敗する可能性があります。