CA Gen z/OS User Exit fails at runtime with error: CICS abend ASRA
search cancel

CA Gen z/OS User Exit fails at runtime with error: CICS abend ASRA

book

Article ID: 214067

calendar_today

Updated On:

Products

Gen

Issue/Introduction

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

Environment

Release : 8.6

Component : CA GEN TCP/IP DIRECT CONNECT OPTION FOR CICS
                      CA GEN RUNTIMES

Cause

Too many parameters in the 'PROCEDURE DIVISION USING'

Resolution

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.