CIND—in-doubt testing tool
The CICS recovery manager domain unshunts all
UOWs that were previously shunted because of the tool.
The commit or backout specifies what happened in the
dummy coordinator DFHINDSP, and hence what the
CICS recovery manager domain instructs its
subordinates to do when the unshunt takes place.
For each UOW unshunted, message DFHIN1012 is sent
to CSMT detailing the UOW status as defined by
coordinator DFHINDSP, and the UOW status held by the
CICS recovery manager. Both states should be the
same.
You can use the CIND RESYNC COMMIT command or
the CIND RESYNC BACKOUT command to simulate
what happens when UOWs are not synchronized. For
example, a transaction may be run with CIND activated
and with a TRANSACTION resource definition that
specifies the INDOUBT attributes WAIT(NO) and
WAITACTION(COMMIT). In this case, the UOW is not
shunted but is forced to commit. The CICS recovery
manager domain keeps a record of the UOW in order to
resynchronize with the coordinator. CEMT shows the
UOW in committed status waiting for the return of the
coordinator. If a CIND RESYNC BACKOUT command is
issued at this point, the DFHIN1012 message output to
CSMT shows the UOW to be out of sync, as does
message DFHRM0111 output by CICS recovery
manager domain.
Inquiring on the status of CIND
Type CIND INQUIRE This returns the current status of CIND
with one of the following messages:
DFHIN13 date time applid. The in-doubt tool
is active for DFHTCIND tranclass transactions.
DFHIN16 date time applid. The in-doubt tool is
not active.
Running the in-doubt tool using an EXEC
CICS LINK command
Instead of running the in-doubt tool using a terminal and the
CIND transaction, you can use the EXEC CICS LINK
command to link to the in-doubt tool from an application
passing a commarea; for example:
EXEC CICS LINK PROGRAM('DFHINDT') COMMAREA(COMM)
where COMM is a data-area that contains the commands to
pass to DFHINDT. COMM should contain one of:
' ON '
' OFF '
' RESYNC COMMIT '
' RESYNC BACKOUT '
Setting a single transaction in-doubt
If you want a single transaction to go in-doubt regardless of
its transaction class, an application can link to program
DFHINDAP. (No commarea is required in this case.) This
causes that single transaction to go in-doubt without the
need to type CIND ON. This single transaction can be
resynchronized by typing CIND RESYNC COMMIT, and so
on, as described in “Running the CIND in-doubt tool” on
page 227. DFHINDAP works by enabling the in-doubt
task-related user exit if necessary and then issuing an API
call to the in-doubt task-related user exit to add the dummy
coordinator. This has the advantage of allowing a test
application to decide it wants to force in-doubt dynamically,
after it has started. Hence a UOW, other than the first one in
the transaction can be forced in-doubt.
Resource definitions
The required resource definitions for CIND are provided in
group DFHINDT, which is a member of group list DFHLIST.
Messages
The in-doubt tool outputs audit trail DFHINxxxx messages to
CSMT at the following times:
When CIND is activated using CIND ON
When CIND is deactivated using CIND OFF
When a resync is initiated using CIND RESYNC
COMMIT or CIND RESYNC BACKOUT
For each UOW acted upon, when:
– CIND adds itself as coordinator to the UOW
– CIND simulates losing the link to the coordinator
system and the UOW is shunted
– CIND simulates losing the link to the coordinator,
but the UOW is not shunted
– CIND causes resynchronization of a UOW.
Each message shows the transaction ID, the task number,
and the UOW identifier.
228 CICS Supplied Transactions