Backout-failed recovery

Backout failure support is currently provided only by CICS file control.

If backout to a VSAM data set fails for any reason, CICS performs the following processing:

vInvokes the backout failure global user exit program at XFCBFAIL, if this exit is enabled. If the user exit program chooses to bypass backout failure processing, the remaining actions below are not taken.

vIssues message DFHFC4701, giving details of the update that has failed backout, and the type of backout failure that has occurred.

vConverts the active exclusive locks into retained locks. This ensures that no other task in any CICS region (including the region that owns the locks) waits for a lock that cannot be granted until the failure is resolved. (In this situation, CICS returns the LOCKED condition to other tasks that request a lock.) Preserving locks in this way also prevents other tasks from updating the records until the failure is resolved.

For data sets open in RLS mode, CICS requests SMSVSAM to retain the locks.

For VSAM data sets open in non-RLS mode, the CICS enqueue domain provides an equivalent function.

Creating retained locks also ensures that other requests do not have to wait on the locks until the backout completes successfully.

vKeeps the log records that failed to be backed out (by shunting the unit of work) so that the failed records can be presented to file control again when backout is retried. (See “Shunted units of work” on page 13 for more information about shunted units of work.

If a unit of work updates more than one data set, the backout might fail for only one, or some, of the data sets. When this occurs, CICS converts to retained locks only those locks held by the unit of work for the data sets for which backout has failed. When the unit of work is shunted, CICS releases the locks for records in data sets that are backed out successfully. The log records for the updates made to the data sets that fail backout are kept for the subsequent backout retry. CICS does not keep the log records that are successfully backed out.

For a given data set, it is not possible for some of the records updated by a unit of work to fail backout and for other records not to fail. For example, if a unit of work updates several records in the same data set, and backout of one record fails, they are all deemed to have failed backout. The backout failure exit is invoked once only within a unit of work, and the backout failure message is issued once only, for each data set that fails backout. However, if the backout is retried and fails again, the exit is reinvoked and the message is issued again.

For BDAM data sets, there is only limited backout failure support: the backout failure exit, XFCBFAIL, is invoked (if enabled) to take installation-defined action, and message DFHFC4702 is issued.

Auxiliary temporary storage

All updates to recoverable auxiliary temporary storage queues are managed in main storage until syncpoint. TS always commits forwards; therefore TS can never suffer a backout failure.

Chapter 8. Unit of work recovery and abend processing 79

Page 91
Image 91
IBM SC34-7012-01 manual Backout-failed recovery, Auxiliary temporary storage