File control recovery sample exit program: DFH$FCBV

DFH$FCBV is a sample exit program that is designed to be invoked at the XFCBOVER exit. It allows you to decide whether to allow an update to be backed out, following a batch update run that has overridden retained locks.

About DFH$FCBV

DFH$FCBV provides sample processing for the file control backout override global user exit, XFCBOVER. The exit program, if enabled at the XFCBOVER exit point, is invoked when a log record is presented to file control for backing out an update to a data set in RLS access mode, after the data set has been used in a batch update despite the existence of retained locks. A consequence of running a batch program while there are retained locks is that a lock that protected a record updated by CICS® could have been overridden by a non-RLS batch program.

There is more information about using the XFCBOVER exit, and about the DFH$FCBV sample program, in the comments within the DFH$FCBV source code. The comments also include some suggested extensions that you can make to the sample program to reflect the pattern of batch usage at your installation.

In summary, DFH$FCBV performs the following processing:
  • Makes a user trace entry if tracing is active for file control. This has trace point id X'01E0' and traces:
    • An eye-catcher ‘DFH$FCBV ENTRY'
    • The data set name
    • The file control portion of the log record.
  • Checks the data set name to see if it is one of those for which it is known that batch programs never update existing records, but only insert new records, or do not make updates at all. The sample program contains a table of such data sets. If this data set is in the table, UERCBCKO is returned. UERCBCKO means that CICS is to perform the backout, despite the override option having been used, because the locked record cannot have been updated by a batch job.
  • For all other data sets, it must be assumed that the batch job could have updated the record being backed out. The sample therefore returns UERCNORM, which instructs CICS to take the default action of not backing out the update.
  • Exit from the program, making:
    • A user trace entry if tracing is active for file control. This has trace point id X'01E1' and traces:
      • An eye-catcher ‘DFH$FCBV EXIT'
      • The data set name
      • Some text: ‘Update will be backed out', or ‘Update will not be backed out' as appropriate.

Setting up DFH$FCBV

To define file control recovery sample exit programs including DFH$FCBV, specify the supplied resource group DFH$FCB in your startup grouplist, or use CEDA to install DFH$FCB.