Using ABENDAIDFX as we no longer use IBM formatted DUMPS.
I had to use the trace as the debugging footprint in the program contained footprint of the same value for 4+ cics calls reads or writes to the same database
So tracing back from the *EXC* (the abend on line 506) found the trace record with the READ/INVREQ which looked like this.
000499 0012 29929 AP 00E1 EIP EXIT READ INVREQ 01F4,0000001C ....,00100602 ....
000500 0012 29929 AP 1940 APLI ENTRY GOTO 247DC588,COBOL,24084010
000501 0012 29929 AP 1941 APLI EXIT GOTO/OK 24010290,24010228,00C50000
000502 0012 29929 AP 00E1 EIP ENTRY ABEND 0004,24084010 .. .,09000E0C ....
000503 0012 29929 AP 0741 ABAB ENTRY CREATE_ABEND_RECORD 2408401C , 00000010,XXXXXXXX,YYYY,R14TOR13
000504 0012 29929 AP 0742 ABAB EXIT CREATE_ABEND_RECORD/OK 27554008
000505 0012 29929 AP 0741 ABAB ENTRY START_ABEND 27554008,YES,NO
000506 0012 29929 AP 1942 APLI *EXC* Abend-Percolate START_PROGRAM,XXXXXXXX,CEDF,FULLAPI,EXEC,NO,244B4690,24069CC8 , 00
the entry on line 506 shows the abend occuring.
the entry on line 499 shows the INVREQ condition occuring. I then did a FULL option to get the full trace details after making line 499 at the top of the page
XXXXXXXX is the program and YYYY is the abend code.
I looked up manual "dfhs600 cics trace entries zos.pdf" which I have renamed from the IBM short name version and assumed that iis an old style format as it has field A etc.
I then went back to the CICS APRM and looKed up READ and INVREQ and matched FIELD-A(1C) = Decimal 28 and found RC=28 in the READ/INVREQ command RESP2 fields.
Following a READ UPDATE command without
TOKEN, another READ UPDATE without TOKEN
was issued against the same file without an
intervening REWRITE, DELETE, UNLOCK or
SYNCPOINT command. This condition may in
some cases be raised despite the fact that the first
READ UPDATE was not successful, for example
because it timed out
and then passed it back to the programmer after determining which exact read failed (a choice of two in the end) - also matched this to the correct READ command in the program.
this is the expanded trace detail
Entry Task Interpretation
000499 29929 AP 00E1 EIP EXIT READ INVREQ REQ(01F4) FIELD-A(0000001C ....) FIELD-B(00100602 ....) KE_NUM-0012 TCB-QR /009E5610
RET-A4FEC366 TIME-20:01:20.0461598303 INTERVAL-**.**********
I hope this helps a junior programmer.