One of my jobs abend with code 012, the COBOL program is reading a DB2 table. The program is code such a way that it will dispaly any Bad SQL return code. So in the SAR report i can see SQL RETURN CODE = - 0180. And in addition to that Abend Aid report is saying that
CODE=CEE3207S / EXPECTED COMP CODE=S0C7
C15 ,X ,X -12M BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
C15 ,X ,X - 44K BYTES RESERVE REQUESTED, 12,216K BYTES USED
C15 ,X ,X -20K BYTES OF EMERGENCY SPACE ALLOCATED
C15 ,X ,X -11M BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG
C15 ,X ,X - 0 BYTES RESERVE REQUESTED, 11M BYTES USED
C15 ,X ,X -G=1336
C15 ,X ,X -TURNAROUND SORT PERFORMED
C15 ,X ,X -E35 USER EXIT RETURN CODE TERMINATE
C15 ,X ,X -INSERT 1134, DELETE 0
C15 ,X ,X -SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
I checked that is the program writing on the table. No it is just reading
I verified during the execution of the program is some other job is reading or locking the table.. actually no intervention during the job run.
when i simply restart the job, it is running fine.
can i have any suggestion for this ?
( i am not sure where i can post this COBOL or DB2 so i posted here )
If its a SOC7 error, you can get the offset address/statement number from the spool. taking that address/number, see that in the footprints for a program which is running in the JOB.
from that you can get the particular variable that has been changed.
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
Hello,
Please post the jcl from this step.
How often does this step fail?
It sounds like there may be bad/missing data (a date/time?) somewhere on the initial run and by the time the re-run is done, it has been resolved. It may be that the code is incomplete/incorrect will not work in every case.
Have you looked into what causes the -180? Have you verified that the 180 happens before any other problems? What info about the -180 have you captured (posting all of the diafgnostic info will help)? If the programs tries to continue after the -180 (or after the 0c7 for that matter if it occurs before the -180) strange results may occur.
Is this a new program or did an existing program begin having errors after some code or environment change was made?
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
Hello,
It may be that when you get the -180, some invalid numerics are put "in play" and cause the later 0c7. This could be due to some field not being initialized or some field that has received invalid data.
Does the code terminate the run when the -180 is encountered? If not, maybe it should?