Rational Developer for System z
Enterprise COBOL for z/OS, Version 4.1, Compiler and Runtime Migration Guide


Example 1: No effect on compatibility

 IDENTIFICATION DIVISION.
 PROGRAM-ID. PGM1
 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 PROCEDURE DIVISION.
     EXEC CICS HANDLE ABEND LABEL(LBL1) END-EXEC.
     CALL "PGM2" USING DFHEIBLK DFHCOMMAREA
     EXEC CICS RETURN END-EXEC.
 LBL1.
     EXEC CICS RETURN END-EXEC.


 IDENTIFICATION DIVISION.
 PROGRAM-ID. PGM2
 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01  DATA1    PIC 9 VALUE 0.
 01  DATA2    PIC 9 VALUE 1.
 PROCEDURE DIVISION.
* Force a DIVIDE-BY-ZERO exception
     COMPUTE DATA1 = DATA2 / DATA1
     GOBACK.

In this example the setting of the CBLPSHPOP option will have no effect on VS COBOL II compatibility. If you specify CBLPSHPOP(ON), no HANDLE ABEND will be in effect for PGM2 because the CICS PUSH HANDLE performed by Language Environment will suspend the effects of the CICS HANDLE ABEND issued in PGM1. When the divide by zero occurs in PGM2, an ASRA abend occurs because there is no HANDLE ABEND active.

If you specify CBLPSHPOP(OFF), the divide by zero in PGM2 will cause CICS to ask Language Environment to branch to LBL1 in PGM1; however, Language Environment will not permit branches to labels across program boundaries. As with CBLPSHPOP(ON), the program will end with an ASRA abend.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)