Transaction abend codes: AEYD, AICA, ASRA, ASRB, and ASRD

Special procedures apply to the AEYD, AICA, ASRA, ASRB, and ASRD abend codes.

For an abend code other than AEYD, AICA, ASRA, ASRB, and ASRD, use the procedures in Identifying the last statement to find the last command that was executed, and then see Analyzing the problem further. For details about CICS® abend codes, see Transaction abend codes. All transaction abend codes that CICS issues are listed, with an explanation of why the code was issued, and details of system and user actions. The same information is available online, using the CICS-supplied messages and codes transaction, CMAC.

If, after you review this information, you cannot find the cause of the problem, continue with the procedures in Dealing with transaction abend codes.

AEYD abends

If command storage protection is activated by the CMDPROT(YES) option in the system initialization table (SIT), the AEYD transaction abend can occur. CICS terminates a transaction with this code when an output parameter of an EXEC CICS command addresses storage that the issuing transaction could not itself directly overwrite.

At the time of the abend, register 2 points to the parameter area that contains the invalid address. The trace should include an exception trace entry that is created by DFHEISR or DFHEIGR and that identifies the parameter in error. If the abend is handled, EXEC CICS ASSIGN ASRASTG, ASRAKEY, and ASRASPC can give additional information about the abend.

To prevent a recurrence of the abend, correct the program code. Alternatively, changing one or more of the following options might alleviate the problem:
  • EXECKEY in the program definition, if storage protection is active
  • TASKDATAKEY in the transaction definition
  • ISOLATE in the transaction definition, if transaction isolation is enabled
For further information, see Protecting against storage violations.

AICA abends

If your transaction terminated with abend code AICA, the transaction was probably in a loop. For detailed guidance about dealing with loops, see Dealing with loops.

ASRA abends

CICS issues an ASRA abend code when it detects that a program check has occurred in a transaction. Program checks can occur for a wide variety of reasons, but you can find the nature of the error from the program interrupt code in the program status word (PSW). The machine hardware uses the PSW to record the address of the current instruction being executed, the addressing mode, and other control information. The PSW gives you the address at which the program check occurred, and so it represents a record of the circumstances of the failure.

ASRB abends

A transaction can abend with an ASRB abend code when a program issues the MVS™ ABEND macro. For example, BDAM issues this ABEND macro when it detects errors, rather than sending a return code to the calling program. CICS is notified when an MVS abend occurs, and in turn issues an ASRB abend code for the transaction.

Use the procedures in Locating the last command or statement to find the origin of the abend in your program. Use that information, and the description and procedures for ASRB abends in Transaction abend codes, to resolve the problem.

ASRD abends

A transaction abends with code ASRD in the following situations:
  • An application program attempts to invoke CICS macros.
  • An application program attempts to access the common service area (CSA) or task control area (TCA).
These situations cause a program check that CICS diagnoses as an ASRD abend, rather than the usual ASRA abend. You can use the information in the PSW to investigate the cause of an ASRD abend.