CBLPSHPOP ランタイム・オプションの設定は、プログラムが CALL ステートメントを使用して COBOL サブプログラムを呼び出すときの HANDLE 指定の状態に影響を与えます。
CBLPSHPOP が ON の 場合は、CALL ステートメントを使用して COBOL サブプログラム (ネスト されたプログラムではないもの) が呼び出されると、以下のことが起こります。
CICS HANDLE CONDITION または CICS HANDLE AID コマンドを 使用する場合は、CICS HANDLE コマンドで指定された LABEL が、CICS HANDLE ラベルへの分岐を引き起こす CICS コマンドと同じ PROCEDURE DIVISION に入っていなければなりません。 LABEL オプションを指定した CICS HANDLE コマンドでは、COBOL CALL ステートメントを使用して呼び出された別のプログラムによって引き起こされた条件、援助機能、または異常終了を処理することはできません。LABEL オプションを指定した CICS HANDLE コマンドを使用してプログラム間分岐を実行しようとすると、トランザクションが異常終了します。
ネストされたプログラム内で条件、援助機能、または異常終了が発生する場合、その条件、援助機能、または異常終了の LABEL は、同じネストされたプログラム内に存在しなければなりません。 そうでない場合は、予測不能な結果を招きます。
パフォーマンスの考慮事項: CBLPSHPOP が OFF であると、実行時に、COBOL サブプログラムへの CALL に対して CICS PUSH または POP は実行されません。 サブプログラムがいずれの EXEC CICS 条件処理コマンドも使用しない場合は、CBLPSHPOP(OFF) を実行することで、PUSH HANDLE コマンドおよび POP HANDLE コマンドのオーバーヘッドを除去できます。その結果、CBLPSHPOP(ON) を指定して実行した場合と比較して、パフォーマンスが向上する場合があります。
VS COBOL II ランタイムから言語環境プログラム・ランタイムにアプリケーションを 移行する場合は、関連参照で CBLPSHPOP オプションに ついての追加考慮事項を参照してください。
関連参照
Enterprise COBOL コンパイラーおよびランタイム 移行ガイド (CICS HANDLE
コマンドおよび CBLPSHPOP ランタイム・オプション)
Enterprise COBOL Version 3 Performance Tuning