Upgrade to Cobol release 5.1 or 5.2 and the Cobol User exit causes a S0C4 in GVRESTOR process.

Document ID : KB000031781
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem:

Upgrade to Cobol release 5.1 or 5.2 and the Cobol User exit causes a S0C4 in GVRESTOR process. Customer can compile and link the GVCOBOL user exit and receive a return code of 0 and still receive the S0C4 abend for every restore job. Back level the exit to Cobol 4.2 or earlier and the user exit works properly.

 

Resolution:

Test PTF TR84080 was created to resolve the issue but required a complete revision of the documented process in the manual. The section of the Faver 4.5 User Guide titled "Appendix C: User Exit Facility" provides a sample link JCL on page 208. The JCL provided in TR84080 replaces this sample.

These are the new instructions for application of the GVCOBOL user exit.

The procedure for Application of the User exit has now changed. 

Please follow these instructions.

1) Download APAR TR84080 from CA Support Online.

2) Once the APAR is ready on the mainframe please edit the APAR.

3) Copy the JCL required to link your exit and create a new link job. This will be executed as before, after the APPLY. Once the JCL is removed the PTF will be ready to APPLY. After the APPLY you will notice this JCL in the CBSVSAMP library.

4) In the JCL please note the lines that must be altered to fit your environment:

//COB2   EXEC PGM=IGYCRCTL,                              

//         PARM='DATA(24),moreparms...'                  

//SYSPRINT DD SYSOUT=*                                   

//STEPLIB  DD DISP=SHR,DSN=your.SIGYCOMP                 

//         DD DISP=SHR,DSN=CEE.SCEERUN                   

//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT4   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT5   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT6   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT7   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT8   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT9   DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT10  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT11  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT12  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT13  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT14  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSUT15  DD UNIT=SYSDA,SPACE=(CYL,(5,5))               

//SYSMDECK DD UNIT=SYSDA,SPACE=(CYL,(15,5))              

//SYSLIN   DD DSNAME=&OBJ,UNIT=SYSALLDA,DISP=(MOD,PASS), 

//            SPACE=(TRK,(3,3))                          

//SYSIN    DD DISP=SHR,DSN=your.source.lib(COBLEXIT)     

//*                                                      

//LKED    EXEC PGM=IEWL,                                 

//        PARM='LIST,XREF,LET,MAP,AMODE(24)',            

//        COND=(5,LT,COB2)                               

//****************************************************************** 

//*        LIBS FOR COBOL 5.1 TESTING                              * 

//****************************************************************** 

//SYSLIB   DD DISP=SHR,DSN=CEE.SCEELKED                              

//         DD DISP=SHR,DSN=your.CBSVLINK            < get GVMODINS from here 

//SYSLIN   DD DSN=&&OBJ,DISP=(OLD,DELETE)                            

//         DD DDNAME=SYSIN                                           

//SYSLMOD  DD DISP=SHR,DSN=your.CBSVLINK    < home for your user exit

//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))                           

//SYSPRINT DD SYSOUT=*                                               

//SYSIN    DD *                                                      

    <Make sure you keep the INLINE code for this job to run.>

   INCLUDE SYSLIB(GVMODINS) 

   ENTRY GVCOBLE            

   NAME yourexit(R)         

5) Once you have made the appropriate changes to your JCL and have APPLYd the APAR you can run your new link job with the inline code. 

6) Run a test job to be sure the RESTORE process performs as expected.