IBM SC34-7012-01 Server User Manual


 
Recovery from the failure of a sysplex is just the equivalent of multiple MVS
failure recoveries.
Transaction abend processing
If, during transaction abend processing, another abend occurs and CICS continues,
there is a risk of a transaction abend loop and further processing of a resource that
has lost integrity, because of uncompleted recovery.
If CICS detects that this is the case, the CICS system abends with message
DFHPC0402, DFHPC0405, DFHPC0408, or DFHPC0409.
The action taken by CICS on the abend exit code can:
v Terminate the task normally
v Terminate the task abnormally
“Abnormal termination of a task” on page 93 describes the processing that might
follow the abnormal termination of a task.
Exit code
Exit code can be written either in programs (separate modules defined in the CSD)
or in routines within the application program. Exit code, if activated, can gain
control when a task abend occurs.
Exit code can be activated, deactivated, or reactivated by HANDLE ABEND commands.
For information about HANDLE ABEND commands, see the CICS Application
Programming Reference..
Only one abend exit can be active at any given logical level within a task. This
means that:
1. When one program LINKs to another program, the LINKed-from program and
the LINKed-to program can each have one active exit.
2. When an exit is activated (at a particular program level), any other exit that
may already be active at the same level automatically becomes deactivated.
Reasons that an application programmer might have for coding a program level
abend exit, and functions that might be incorporated, are discussed in “Handling
abends and program level abend exits” on page 151.
When an abend request is issued for a task, CICS immediately passes control to
the exit that is active at the current logical level:
v If no exit is active at the current logical level, CICS checks progressively up
through higher logical levels and passes control to the first exit code found to be
active.
v If CICS finds no active exit at, or higher than, the current logical level, the task
terminates abnormally (see “Abnormal termination of a task” on page 93).
When control is transferred to any exit code, CICS deactivates the exit before any
of its code is executed. (This means that, in the event of another abend request, the
exit will not be reentered, and control is passed to activated exit code (if any) at
the next higher level.)
92 CICS TS for z/OS 4.1: Recovery and Restart Guide