言語環境プログラムの CBLPSHPOP ランタイム・オプションは、VS COBOL II、IBM COBOL、または Enterprise COBOL のサブルー チンが CALL ステートメントを用いて呼び出されるときに、CICS の PUSH HANDLE コマンド および POP HANDLE コマンドが発行されるかどうかを制御するために使用されます。 CBLPSHPOP の設定によって、より高速の CICS パフォーマンスまたは互換性のある動作を 得ることができます (プログラムのコーディング方法に応じて異なります)。
VS COBOL II ランタイムは、COBOL サブルーチンの呼び出し時に PUSH HANDLE コマンドおよ び POP HANDLE コマンドを自動的に発行します。言語環境プログラムでこれと同じ動作を得るためには、言語環境プログラムの CBLPSHPOP(ON) ランタイム・オプションを指定 しなければなりません。
CICS のもとでアプリケーションが COBOL (VS COBOL II、IBM COBOL、または Enterprise COBOL) サブルーチン を呼び出す場合、CBLPSHPOP(OFF) を指定した方が、CBLPSHPOP(ON) の場合よりも パフォーマンスが向上します(CEEUOPT を使用することによって、エンクレーブ単位で CBLPSHPOP ランタイム・オプシ ョンを設定することができます)。
CBLPSHPOP(OFF) は、PUSH HANDLE および POP HANDLE コマンドの発行を防止します。これ は、アップグレード時の互換性問題を避けるために注意して使用しなければなりません。COBOL サブルーチンへの呼び出しの前に CICS PUSH HANDLE コマンドを発行しない場合は、そのサブルーチンは呼び出し元から IGNORE CONDITION または HANDLE コマンドを継承します。そのサブルーチンが、その後、IGNORE CONDITION または HANDLE コマンドを発行すると、呼び出し元は戻り時にそれらの影響を継承します。
呼び出し元に含まれている CICS HANDLE...(label) コマンドは、プログラムに上記の いずれかのステートメントが含まれていない限り、CBLPSHPOP(OFF) の互換性問題を起こさないことに 注意してください。
以下の 2 つの例では、CBLPSHPOP オプションが VS COBOL II の互換性に与える影響を 示します。