Resolving indoubt units of work (UOWs)

Indoubt units of work (UOWs) can occur when CICS®, Db2®, or the whole system fails while a transaction is carrying out syncpoint processing, that is, during processing of an EXEC CICS SYNCPOINT or EXEC CICS RETURN command. Indoubt UOWs are typically resolved when the connection between CICS and Db2 is reestablished.

If more than one recoverable resource is involved, CICS uses the two-phase commit protocol when trying to commit the UOW. Between replying “yes” to the phase 1 prepare call, and before receiving the commit or backout call at phase 2 time, Db2 is indoubt as to the outcome of the UOW. If a failure occurs at this time, Db2 remains indoubt about the UOW; it has an indoubt UOW and must ask CICS to resynchronize.

In situations where only Db2 and a single CICS system are involved with the unit of work, CICS is always the coordinator. If further parties are involved, for example, by means of a LU6.2 communication link, it is possible that a remote CICS system might be the overall coordinator of the unit of work instead of the local CICS system. In this situation, it is possible that both Db2 and the local CICS system are indoubt about the outcome of the UOW. If a failure occurs in this situation, the local CICS system might shunt the unit of work, depending on the definition for the transaction. The unit of work is then considered to be shunted indoubt.

Indoubt UOWs are typically resolved automatically when the connection between CICS and Db2 is reestablished. CICS and Db2 exchange information regarding the indoubt UOWs; that is, CICS informs Db2 whether the UOW was backed out or committed. If a UOW is shunted indoubt, this exchange of information is deferred until the remote coordinator has informed CICS of the outcome. However, if you are using group attach, CICS might reconnect to a different Db2 subsystem, and be unable to exchange information about the indoubt UOWs held by the previously connected Db2 subsystem. The RESYNCMEMBER attribute of the DB2CONN definition is used to solve this problem.