4094 abend in TIRNCRYP after one line change in Gen action block

book

Article ID: 221946

calendar_today

Updated On:

Products

CA Gen

Issue/Introduction

A one line change in an action block caused a 4094 abend with the calling PStep transaction and associated load module.  The errors displayed in CICS output are:

JESMSGLG
14.04.30 S0161159  +GSVC118W (Task) TRAN dump 4094 1/0077 Tran XXXX  1338 Program YYYYYYYY Term * Userid ZZZZZ AbCode * 
14.04.30 S0161159  +CEE1000S z/OS INTERNAL ABEND. ABCODE = 4094 REASON = 0000002C                                       

CEEMSG 
ASRY 20210629140430 CEE0802C Heap storage control information was damaged.                                                                   
ASRY 20210629140430          From compile unit TIRNCRYP at entry point TIRNCRYP at compile unit offset +00000206 at entry offset +00000206 at address  
ASRY 20210629140430          18777796.                                  
ASRY 20210629140430 CEE0802C Heap storage control information was damaged.                                                                   
ASRY 20210629140430          The traceback information could not be determined.

The Gen 8.6 TIRNCRYX server encryption exit has not been customised from the default and encryption/decryption is not being used.

Environment

Release : 8.6

Component : CA Gen Run Time, Blockmode

Resolution

For this type of abend, the useful information to collect is:
a. An AMBLIST.
b. A dump or CICS auxtrace. For the latter, if currently suppress trace components then that needs to be changed i.e. use CETR PF4 and make sure trace is active for at minimum AP, TS, XM and XS. 

The abend could only be recreated in one CICS region i.e. in other regions the application ran successfully.
After the region was restarted the problem could not be recreated, so it appears the root cause was related to some transient storage corruption in that particular CICS region.

Additional Information

TIRNCRYP was the old name of server encryption exit TIRNCRYZ.
In Gen 8.5 when each user exit became its own DLL and the exit names were changed, Engineering made TIRNCRYP a routine included in TIRORUNC that itself calls TIRNCRYX (TIRNCRYX resides in DLL TIRNCRYZ). 
CA Gen 8.6 > Reference > User Exits > z/OS User Exits