4. If a unit of work has been shunted with a different CAUSE and REASON,
review the descriptions of these values in the INQUIRE UOWDSNFAIL command to
determine what action to take to allow the shunted unit of work to complete.
Choosing data availability over data integrity
There may be times when you cannot resolve all the retained locks correctly, either
because you cannot easily remedy the situations preventing the changes from
being committed, or because of insufficient time.
About this task
In such a situation, you can still release the locks, using the SET DSNAME
command, although in most cases you will lose some data integrity.
SET DSNAME UOWACTION(COMMIT, BACKOUT, or FORCE) operates on
shunted indoubt units of work. It causes any indoubt units of work that have
made changes to the data set (these will appear on an INQUIRE UOWDSNFAIL
command with a CAUSE of CONNECTION) to complete in one of the following
ways:
v By backing out or committing the changes according to the COMMIT or
BACKOUT option on UOWACTION.
v By backing out or committing the changes according to the indoubt ACTION
attribute specified on the transaction resource definition (when you specify the
FORCE option on UOWACTION).
When the unit of work completes, the locks are released. If the action chosen is
backout (either by explicitly specifying BACKOUT or as a result of the FORCE
option), diagnostic information is written to the CSFL transient data queue.
Therefore BACKOUT is normally the best option, because you can use the
diagnostic information to correct the data if backout was the wrong decision.
Diagnostic messages DFHFC3004 and DFHFC3010 are issued for each backed-out
update. Choose COMMIT for the units of work only if you know this is the
decision that would be communicated by the coordinator when resynchronization
takes place following reconnection.
Note: The CEMT or EXEC CICS SET UOW command operates on a single unit of
work and therefore gives better control of each unit of work. The SET DSN(...)
UOWACTION operates on all indoubt units of work that have updated the
specified data set. Because these may have also updated resources other than those
in the specified data set, you may prefer to use the SET UOW command and
consider the effect of your actions separately for each individual unit of work.
However, if you are confident that the ACTION option specified on your
transaction definitions indicates the best direction for each individual transaction,
you can use SET DSNAME FORCE.
The SET DSNAME(datasetname) ACTION(RESETLOCKS) command operates on
units of work that are shunted for reasons other than indoubt failure. CICS resets
the locks for the named data set; that is, it:
v Releases any locks held against this data set by shunted units of work (other
than indoubt failures)
v Discards the log records that represent the uncommitted changes made to the
data set by those units of work
v Writes diagnostic information to the CSFL transient data queue for each
discarded log record.
Chapter 15. Resolving retained locks on recoverable resources 177