File control recovery program exits XFCBFAIL, XFCBOUT, XFCBOVER,
and XFCLDEL
CICS provides four global user exits that you can use in connection with file control
recovery operations. These are:
XFCBFAIL
Invoked when an error occurs during backout.
XFCBOUT
Invoked when CICS is about to back out a file update.
XFCBOVER
Invoked when CICS is about to skip unit-of-work (UOW) backout because a
batch program has overridden RLS retained lock protection and opened a
data set for batch processing.
XFCLDEL
Invoked when backing out a write to a BDAM or a VSAM ESDS data set.
Order of invocation
Each of the exits in the file control recovery program may or may not be invoked
during an attempt to backout a file update. If the backout fails, each may (or may
not) be reinvoked when the backout is retried. If an exit program needs to know
whether it is being invoked during the original backout attempt, or during a retry, it
can check the value of the RE_ATTACHED_TRANSACTION field returned by an
XPI INQUIRE_TRANSACTION call.
The way in which the exits interact, and the order in which they are invoked, is
shown in the following list. Assuming that all the exits are enabled, for each backout
attempt or retried backout attempt:
1. If an open during backout fails, XFCBFAIL is invoked. None of the other exits
is invoked.
2. If the SHCDS PERMITNONRLSUPDATE command has been issued for the
data set being backed out, XFCBOVER is invoked. If it returns UERCNORM
(do not perform the backout), no further exits are invoked.
3. Unless item 1 applies, or XFCBOVER has been invoked and returned
UERCNORM, XFCBOUT is invoked.
4. Backout issues a read update request for the record being backed out.
If the read update fails, XFCBFAIL is invoked, followed by no further exits.
5. If the update to be backed out was a write to a data set which does not support
physical deletes (that is, a BDAM data set or a VSAM ESDS), XFCLDEL is
invoked.
6. If a failure occurs after this point, XFCBFAIL is invoked.
Enabling the exit programs
To enable these exits, you must do one of the following:
v Specify the system initialization parameter
TBEXITS=(name1,name2,name3,name4,name5,name6), where name1 through
name6 are the names of your user exit programs for XRCINIT, XRCINPT,
XFCBFAIL, XFCLDEL, XFCBOVER, and XFCBOUT.
v Enable the exits during the first stage of initialization using a PLTPI program.
If you use the TBEXITS parameter to enable the exits, a global work area of 4
bytes is provided. If you use a PLTPI program, you can select the size of the global
work area. You can also enable more than one exit program for use at each exit
126 Customization Guide