Exit XFCBOUT, file control backout exit
XFCBOUT is invoked when a file control update is about to be backed out. The log record containing the before-image of the record being backed out is passed to the exit program.
XFCBOUT does not provide a return code to allow your exit program to bypass the backout of the update, because this would result in data corruption. However, the file name is in the log record, so your exit program can use an EXEC CICS INQUIRE FILE command to get information about the file.
- When invoked
- Invoked when an update (represented by a before-image log record) is being backed out by File Control.
- Exit-specific parameters
-
- UEPFLOGR
- The address of the file control portion of the log record that is being presented for backout. This is mapped by the DSECT DFHFCLGD.
- Return codes
-
- UERCNORM
- Continue processing.
A return code of UERCPURG is not allowed. There is no need to set a UERCPURG return code, because this exit is invoked during syncpoint phase 2, and therefore cannot get a purged response from any calls it makes.
- XPI calls
- All can be used, but subject to the same caution as for API and SPI calls.
- API and SPI calls
- Although this exit is allowed to issue API and SPI calls, you
should be very careful about which commands you use because the exit
is invoked during file backout, which is part of syncpoint phase 2.
It is recommended that you restrict EXEC CICS® commands to inquiries, and avoid commands that update CICS resources, because the resources may themselves be in a state of recovery. In particular, the following restrictions apply:
- Do not issue any recoverable operations.
- Do not use operations that access systems or resource owners external to this CICS, even if the target resource is unrecoverable.
- Do not disable or close files, because this could cause further error conditions.
- It is possible for this exit to be invoked under a different transaction environment from that under which the updates that are being backed out were originally made. If your exit program wants to perform any actions (such as writing a message to the terminal) that require it to be running under the original transaction environment, it must first check the value returned in the RE_ATTACHED_TRANSACTION parameter of a transaction manager INQUIRE_TRANSACTION XPI call.
Because it is anticipated that XFCBOUT will be used for specific applications, no general-purpose sample exit program is provided. You could use any of the samples for the other file control recovery exits, DFH$FCBF, DFH$FCBV, or DFH$FCLD, as the basis for an XFCBOUT exit program.