Below is an example of the ASRA abend from a CICS user exit that fails at runtime. It can happen to any CICS user exit.
+IDI0002I Module TIRSIPEZ, program TIRSIPEX, offset X'24E': CICS abend ASRA
+IDI0003I Fault ID F13354 assigned in history file CDP.XZ.HIST
+DFHSR0001 NVSPDX4 An abend (code 0C4/AKEA) has occurred at offset X'FFFFFFFF'
+DFHME0116 NVSPDX4 347
(Module:DFHMEME) CICS symptom string for message DFHSR0001 is
PIDS/5655Y0400 LVLS/710 MS/DFHSR0001 RIDS/DFHSRP PTFS/HCI7100
AB/S00C4 AB/UAKEA RIDS/LXCFS019 ADRS/FFFFFFFF
+DFHDU0205 NVSPDX4 A SYSTEM DUMP FOR DUMPCODE: SR0001 , WAS SUPPRESSED BY THE
DUMPCODE
Release : 8.6
Component : CA GEN TCP/IP DIRECT CONNECT OPTION FOR CICS
CA GEN RUNTIMES
Too many parameters in the 'PROCEDURE DIVISION USING'
To research the problem, asked the customer for the source listing to review the modifications and the complete installation job output of the source module.
In this example for TIRSIPEX, there were no CICS commands added to the source. After reviewing the job output, it executed the CICS pre-compiler. If no CICS commands, then this module does not need to go thru the CICS translator. Only do the COBOL COMPILE step and remove the COBCICS step. What the CICS translator does is add dfheiblk and dfhcommarea but we already have RUNTIME-PARM1 and RUNTIME-PARM2 in the linkage. If you should change a Gen CICS User Exit and add CICS statements, remove the RUNTIME-PARM1 and RUNTIME-PARM2 before the CICS pre-compiler is executed.
The linkedit will complete successfully with the DFH parms and RUNTIME parms but will fail at runtime. An example follows:
000503 004600 PROCEDURE DIVISION USING dfheiblk dfhcommarea RUNTIME-PARM1
000504 RUNTIME-PARM2
000505 SIP-TS-PREFIX
000506 DEST-ERR
000507 DEST-INFO
000508 SELECT-TIMEOUT-SECS
000509 SELECT-TIMEOUT-MICROSEC
000510 ERROR-IP-FLAG
000511 TIRSIPEX-RC
000512 GLOBDATA.