Why am I getting S0C1/S0C4 or S806 abends calling Cobol subroutines from Easytrieve Plus?

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

First, you must make sure that you are using ENVIRON=COBOL in your Easytrieve Plus options table used for the compile of the program OR, if you are not sure how your options table is set, add ENVIRONMENT COBOL to your PARM statement or JOB statement. Then verify that install job 6, which links Easytrieve modules, EZTPA181, EZTPD142 and EZTPD143 was run successfully. Next verify that the compile for the called subroutine was successful and that the program load library is either in the STEPLIB or in the linklisted library.

You then need to verify that the Easytrieve Plus program 'using' fields exactly match the corresponding Cobol fields by checking the Cobol linkage section. Lastly, check the COBOL program compile and link JCL. Verify that the PARM includes RENT for reentrant and be sure that NCAL is not specified. If you have completed the above and you still are experiencing problems, please open an issue. Attach the needed documentation to the issue. We will need the following:

Change the first two lines of your Easytrieve Plus program to:

LIST ON MACROS
PARM DEBUG(PMAP DMAP XREF LONG STATE) ABEXIT NO  + 
     ENVIRONMENT COBOL  SORT(MSG(ALL)) 

...rest of the program...

(Note that any other PARM statement in this program must be commented out as you may only have one PARM statement. Also, you can keep any other SQL statements currently used by the program by adding them to the required PARM.)

Provide the compile listings for the Easytrieve Plus program and all called subroutines along with the dump (either an IPCS or SYSUDUMP).

NOTE: Support for calls to OS/VS Cobol programs was dropped as IBM no longer supports it.