Retrying operations

If an abend occurs during the invocation of a CICS® service, issuing a further request for the same service can cause unpredictable results. Because the reinitialization of pointers and work areas, and the freeing of storage areas in the exit routine, might not have been completed.

You should not try to recover from ATNI or ATND abends by attempting further I/O operations. Either of these abends results in a TERMERR condition, requiring the session to be terminated in all cases. You should not try to issue terminal control commands while recovering from an AZCT abend, or an AZIG abend, as CICS has not fully cleaned up from the RTIMOUT, and an indefinite wait can occur.

If intersystem communication is being used, an abend in the remote system might cause a branch to the specified program or label, but subsequent requests to use the same resource in the remote system might fail. If an abend occurs as a result of a failure in the connection to the remote system, subsequent requests to use any resources in the remote system might fail.

If an abend occurs as a result of a BMS command, control blocks are not tidied up before control is returned to the BMS program, and results are unpredictable if the command is retried.
Figure 1. ABEND exit processing
This picture consists of a flow chart that describes the process CICS adopts when task is abnormally terminated. CICS looks for an active exit. If there is one, the exit is deactivated and the program is then linked to and action is taken in the exit program or routine. The program might abend again, in which case the process begins again or else it returns. If the program is at the highest level, it terminates. If it is not at the highest level, it exits to the program at the next highest level.