System recovery programs

The system recovery programs, DFHSR1, DFHSRP, and DFHSRLI, together form the default CICS® recovery routine for the application (AP) domain. This routine is, in particular, the recovery routine for program checks, operating system abends, and runaway tasks that occur in user application code.

Design overview

The CICS kernel intercepts program checks, runaway tasks, operating system abends and some other internal errors for all CICS domains. The kernel then selects which CICS recovery routine to pass control to. The selected recovery routine can then process the error as appropriate.

The DFHSR1 module is the default recovery routine for the application domain. It receives control if any of the errors listed earlier occur in CICS system application programs, user application programs and some CICS nucleus modules. It processes internal errors itself but, when dealing with program checks, operating system abends, and runaway task abends, it calls the DFHSRP module. The DFHSRP module, in turn, converts the error into a transaction abend, if possible; if not possible, it terminates CICS. The DFHSRP module uses subroutines in DFHSRLI.

The transaction abend codes that can be issued are as follows:
  • AEYD Error detected by command storage protection
  • AICA Task runaway
  • AKEF Domain gate not active
  • AKEG Kernel stack storage GETMAIN failure
  • ASRA Program check
  • ASRB Operating system abend
  • ASRD Illegal macro call or attempt to access the CSA or TCA
  • ASRK TCA not available
  • xxxx as set by issuers of deferred abend

The processing associated with each of these abends is described in Error handling.

Associated with DFHSRP is the system recovery table (SRT). This is a table that the user can provide, containing operating system abend codes. It controls whether CICS recovers from program checks and operating system abends in noncritical code. You specify the name of the system recovery table by the SRT system initialization parameter, as either SRT=NO or SRT=xx, where xx is the two-character suffix of the SRT:
  • If NO is coded, CICS does not recover from program checks or operating system abends, and terminates if one occurs.
  • If a suffix is coded, CICS attempts to recover from all types of program check, but can only recover from an operating system abend if the abend code appears in the SRT identified by the suffix (for example, DFHSRT1A where 1A is the suffix). If the abend code is not in the SRT, CICS terminates.

For information about how to create the SRT, see System recovery table (SRT).

Modules

Module Function
DFHSRP Called by DFHSR1 to process program checks, operating system abends, runaway tasks, and so on.
DFHSRLI Provides functions for DFHSRP, via the DFHSRLIM interface.
DFHSR1 The default recovery routine for the AP Domain.

At recovery initialization, the DFHSII1 module calls the DFHSR1 module during AP domain initialization. The DFHSR1 module tells the Kernel that it is the default recovery routine for the AP domain and adds the ABAB gate. If any error occurs when informing the kernel, CICS is terminated with message DFHSR0605 and a system dump because it is not possible to run CICS without AP domain recovery.

Exits

There is one global user exit point in DFHSR1: XSRAB. This exit can be called if an operating system abend has occurred and the abend code is in the SRT.

For further information about using the XSRAB exit, see System recovery program exit XSRAB.

Trace

The following trace point IDs are provided for DFHSRP and DFHSRLI:
  • AP 0701, for which the trace entry level is AP 2
  • AP 0702, for which the trace entry level is AP 2
  • AP 0780, for which the trace entry level is Exc
  • AP 0781, for which the trace entry level is Exc
  • AP 0782, for which the trace entry level is Exc
  • AP 0783, for which the trace entry level is Exc
  • AP 0790, for which the trace entry level is Exc
  • AP 0791, for which the trace entry level is Exc
  • AP 0792, for which the trace entry level is Exc
  • AP 0793, for which the trace entry level is Exc
  • AP 0794, for which the trace entry level is Exc
  • AP 0795, for which the trace entry level is Exc
  • AP 0796, for which the trace entry level is Exc
  • AP 0797, for which the trace entry level is Exc
  • AP 0798, for which the trace entry level is Exc
  • AP 0799, for which the trace entry level is Exc
  • AP 079A, for which the trace entry level is Exc

Reference

The following topics describe processing details of the modules.