Processing operating system abends and program checks
There is a limit to the processing you can attempt after an operating system abend or a program check.
If the program check or abend is associated with any domain
other than the application domain, you have no further part in processing
the error. If the program check or abend is in the application domain,
one of the following can occur:
- CICS® remains operational, but the task currently in control terminates.
- CICS terminates (see Shutdown requested by the operating system).
If a program check occurs when a user task is processing, the task abends with an abend code of ASRA. If a program check occurs when a CICS system task is processing, CICS terminates.
If
an operating system abend has occurred, CICS searches
the system recovery table, DFHSRT. The system recovery table contains
a set of operating system abend codes that you want CICS to
recover from. CICS searches the table looking for the system
abend code issued by the system:
- If a match is not found, CICS is terminated.
- If a match is found, and a CICS system task is processing, CICS is terminated.
- If a match is found, and a user task is processing, the default
action is to abend the task with an abend code of ASRB. However, you
can change this action by coding a global user exit program at exit
point XSRAB. The value of the return code from XSRAB determines which
of the following happens next:
- The task terminates with the ASRB abend code.
- The task terminates with the ASRB abend code and CICS cancels any program-level abend exits that are active for the task.
- CICS terminates.
For programming information about the XSRAB exit point, see System recovery program exit XSRAB.
CICS supplies a sample system recovery table, DFHSRT1$, that has a default set of abend codes. You can modify the sample table to define abend codes that suit your own requirements. The source of DFHSRT1$ is supplied in the CICSTS54.CICS.SDFHSAMP library. For more information about the system recovery table, see System recovery table (SRT).
Note: Because it is possible to introduce recursions between
program checks and abends, take great care when coding a global user
exit program at the XSRAB exit point.