IBM SC34-7012-01 manual Transaction abend processing, Exit code

Models: SC34-7012-01

1 268
Download 268 pages 41.5 Kb
Page 104
Image 104
Transaction abend processing

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:

vTerminate the task normally

vTerminate 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:

vIf 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.

vIf 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.)

92CICS TS for z/OS 4.1: Recovery and Restart Guide

Page 104
Image 104
IBM SC34-7012-01 manual Transaction abend processing, Exit code