User exits for transaction backout

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.

Where you can add your own code

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:

The exits to consider are:

  1. XRCINIT--invoked at the beginning and end of the user log record recovery program
  2. XRCINPT--invoked whenever a user log record is read from the system log
  3. XFCBFAIL--file backout failure exit
  4. XFCLDEL--file logical delete exit
  5. XFCBOVER--file backout non-RLS override exit
  6. XFCBOUT--file backout exit

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.

Exit details

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 exit

XRCINIT is invoked at warm and emergency restart:

  1. When the first user log record is read from the system log, and before it is passed to the XRCINPT exit
  2. After the last user log record has been read from the system log and passed to XRCINPT

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 exit

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 global user exit

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 global user exit

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 global user exit

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 global user exit

XFCBOUT is invoked when CICS is about to backout a file update.

Coding transaction backout exits

You have access to all CICS services, except terminal control services, during exit execution. However, consider the following restrictions:

[[ Contents Previous Page | Next Page Index ]]