distinguishes between a commit failure where recoverable work was performed,
and one for which only repeatable read locks were held.
Indoubt failure recovery
The CICS recovery manager is responsible for maintaining the state of each unit of
work in a CICS region.
For example, typical events that cause a change in the state of a unit of work are
temporary suspension and resumption, receipt of syncpoint requests, and entry
into the indoubt period during two-phase commit processing.
The CICS recovery manager shunts a unit of work if all the following conditions
apply:
v The unit of work has entered the indoubt period.
v The recovery manager detects loss of connectivity to its coordinator for the unit
of work.
v The indoubt attribute on the transaction resource definition under which the
unit of work is running specifies WAIT(YES).
v The conditions exist that allow shunting. See ../dfht1/topics/dfht12z.dita for a
complete list of conditions.
Files
When file control shunts its resources for the unit of work, it detects that the shunt
is being issued during the first phase of two-phase commit, indicating an indoubt
failure.
Any active exclusive lock held against a data set updated by the unit of work is
converted into a retained lock. The result of this action is as follows:
v No CICS region, including the CICS region that obtained the locks, can update
the records that are awaiting indoubt resolution because the locks have not been
freed.
v Other units of work do not wait on these locked records, because the locks are
not active locks but retained locks, requests for which cause CICS to return the
LOCKED response.
For information about types of locks, see “Locks” on page 14.
For data sets opened in RLS mode, interfaces to VSAM RLS are used to retain the
locks. For VSAM data sets opened in non-RLS mode, and for BDAM data sets, the
CICS enqueue domain provides an equivalent function. It is not possible for some
of the data sets updated in a particular unit of work to be failed indoubt and for
the others not to be.
It is possible for a unit of work that has not performed any recoverable work, but
which has performed repeatable reads, to be shunted when an indoubt failure
occurs. In this event, repeatable read locks are released. Therefore, for any data set
against which only repeatable reads were issued, it is possible to access the
records, and to open the data set in non-RLS mode for batch processing, despite
the existence of the indoubt failure. The INQUIRE UOWDSNFAIL command
distinguishes between an indoubt failure where recoverable work has been
performed, and one for which only repeatable read locks were held. If you want to
open the data set in non-RLS mode in CICS, you need to resolve the indoubt
failure before you can define the file as having RLSACCESS(NO). If the unit of
work has updated any other data sets, or any other resources, you should try to
resolve the indoubt correctly, but if the unit of work has only performed repeatable
84 CICS TS for z/OS 4.1: Recovery and Restart Guide