Handling errors by using CICS HANDLE
The setting of the CBLPSHPOP
runtime
option affects the state of the HANDLE
specifications
when a program calls COBOL subprograms using a CALL
statement.
When CBLPSHPOP
is ON
and
a COBOL subprogram (not a nested program) is called with a CALL
statement,
the following actions occur:
- As part of program initialization, the run time suspends
the
HANDLE
specifications of the calling program (usingEXEC CICS PUSH HANDLE
). - The default actions for
HANDLE
apply until the called program issues its ownHANDLE
commands. - As part of program termination, the run time reinstates
the
HANDLE
specifications of the calling program (usingEXEC CICS POP HANDLE
).
If you use the CICS
HANDLE CONDITION
or CICS HANDLE AID
commands,
the LABEL
specified for the CICS HANDLE
command
must be in the same PROCEDURE DIVISION
as the CICS® command that causes branching
to the CICS HANDLE
label. You cannot use the CICS
HANDLE
commands with the LABEL
option to
handle conditions, aids, or abends that were caused by another program
invoked with the COBOL CALL
statement. Attempts to
perform cross-program branching by using the CICS HANDLE
command
with the LABEL
option result in a transaction abend.
If
a condition, aid, or abend occurs in a nested program, the LABEL
for
the condition, aid, or abend must be in the same nested program; otherwise
unpredictable results occur.
Performance considerations: When CBLPSHPOP
is OFF
,
the run time does not perform CICS PUSH
or POP
on
a CALL
to any COBOL subprogram. If the subprograms
do not use any of the EXEC CICS
condition-handling
commands, you can run with CBLPSHPOP(OFF)
, thus eliminating
the overhead of the PUSH HANDLE
and POP HANDLE
commands.
As a result, performance can be improved compared to running with CBLPSHPOP(ON)
.
If
you are migrating an application from the VS COBOL II run time to the Language Environment® run time, see the related
reference for information about the CBLPSHPOP
option
for additional considerations.
Example: handling errors by using CICS HANDLE
Enterprise COBOL for z/OS® Migration Guide
Enterprise COBOL for z/OS Performance Tuning Guide