This topic describes how to include your own logic in global user exit programs that run during dynamic transaction backout and backout at emergency restart. There are exits in the file control recovery control program, and in the user log record recovery program (which is driven at emergency restart only). Transient data and temporary storage backouts do not have any exits.
For detailed programming information about the exits described in this section, see the CICS Customization Guide.
At emergency restart, you may add your own code in post-initialization programs that you nominate in the program list table (described under Using post-initialization (PLTPI) programs).
You may want to include functions in global user exit programs that run during emergency restart to:
You can use any of these exits to add your own processing if you do not want the default action. To use these exits at emergency restart, either enable them in PLT programs in the first part of PLT processing, or specify them on the system initialization parameter, TBEXITS. This takes the form TBEXITS=(name1,name2,name3,name4,name5,name6), where name1, name2, name3, name4, name5, and name6 are the names of your global user exit programs for the XRCINIT, XRCINPT, XFCBFAIL, XFCLDEL, XFCBOVER, XFCBOUT exit points.
For programming information on the generalized interface for exits, how to write exit programs, and the input parameters and return codes for each exit, see the CICS Customization Guide.
Do not set the UERCPURG return code for these exits, because the exit tasks cannot be purged.
XRCINIT is invoked at warm and emergency restart:
The XRCINIT exit code must always end with a return code of UERCNORM. No choice of processing options is available to this exit.
CICS® passes information in the global user exit parameter list about user-written log records presented at the XRCINPT exit. The parameters includes a flag byte that indicates the disposition of the user log records. This can indicate the state of the unit of work in which the user log records were found, or that the record is an activity keypoint record. The possible values indicate:
XRCINPT is invoked at warm and emergency restart, once for each user log record read from the system log.
The default action at this exit is to do nothing.
If you want to ignore the log record, return with return code UERCBYP. This frees the record area immediately and reads a new record from the system log. Take care that this action does not put data integrity at risk.
XFCBFAIL is invoked whenever an error occurs during backout of a unit of work.
An XFCBFAIL global user exit program can decide whether to bypass, or invoke, CICS backout failure control, The processing performed by CICS backout failure control is described under Backout-failed recovery.
XFCLDEL is invoked when backing out a unit of work that performed a write operation to a VSAM ESDS, or a BDAM data set.
XFCBOVER is invoked whenever CICS is about to decide not to backout an uncommitted update, because the record could have been updated by a non-RLS batch program. This situation can occur after a batch program has opened a data set, even though it has retained locks, by overriding the RLS data set protection.
XFCBOUT is invoked when CICS is about to backout a file update.
You have access to all CICS services, except terminal control services, during exit execution. However, consider the following restrictions: