vDo not use DENYNONRLSUPDATE if you run non-RLS work after specifying PERMITNONRLSUPDATE. The permit status is automatically reset by the CICS regions that hold retained locks when they open the data set in RLS mode.

Post-batch processing

After a non-RLS program has been permitted to override retained locks, the uncommitted changes that were protected by those locks must not normally be allowed to back out.

This is because the non-RLS program may have changed the protected records. To ensure this, all CICS regions that held retained locks are notified by VSAM that a non-RLS update may have occurred because of the PERMITNONRLSUPDATE override. The CICS regions receive this notification when they open the affected data set in RLS mode.

CICS stores information about any uncommitted changes that are currently outstanding, and then informs VSAM RLS that the PERMITNONRLSUPDATE state can be cleared with respect to this CICS region. CICS uses the stored information to prevent automatic backouts during retries, because this could cause unpredictable results if backouts were applied to data modified by a batch program. Whenever a change made by one of these UOWs is about to be backed out, CICS detects its special status and invokes the XFCBOVER global user exit program. This allows you to determine what action to take over the uncommitted changes. The default action for these units of work is not to retry the backouts.

Diagnostic information is provided to help you to correct the data if necessary. Diagnostic messages DFHFC3001 and DFHFC3010 are issued for each affected update. CICS uses an internal form of the SET DSNAME RETRY command to drive any pending backout failures immediately. In the case of indoubt failures, CICS has to wait for the indoubt to be resolved following resynchronization before knowing whether the changes were to have been backed out.

Note that neither CICS nor VSAM knows whether the non-RLS program did change any of the locked records, only that it had the potential to do so. With your knowledge of the batch application, you may know that the records, or certain of the records, could not have been changed by batch and could therefore be safely backed out. For example, the batch application might only ever add records to the data set. CICS provides a global user exit point, XFCBOVER, which allows you to request that records are backed out, and which you can also use to perform other actions. If you choose to back out an update, CICS issues diagnostic message DFHFC3002 instead of DFHFC3001.

The SHCDS LISTDS subcommand shows whether the non-RLS batch update PERMITNONRLSUPDATE state is currently set. It also shows the status of a PERMIT first-time switch, which is a switch that is cleared as soon as a data set for which non-RLS update has been allowed is next opened for RLS access. The non-RLS permitted state is used to inform each contributing CICS region that a non-RLS program has potentially overridden its retained locks. The first-time switch is used to ensure that a subsequent non-RLS open for update requires a new PERMITNONRLSUPDATE to be issued even if some permitted states have not yet been cleared.

Chapter 15. Resolving retained locks on recoverable resources 181

Page 193
Image 193
IBM SC34-7012-01 manual Post-batch processing