CIND - indoubt testing tool

Use the CIND transaction to test the effect of indoubt failures on application programs. You can also use this transaction to produce shunted units of work (UOWs) to test programs that use SPI commands to inquire on, and change the characteristics of, shunted UOWs and unshunt UOWs that have been shunted using CIND.

For a description of the concepts involved in the synchronization of distributed applications, including indoubt periods and shunted UOWs, see Troubleshooting intersystem problems.

CIND can operate in a stand-alone system; it provides a way of changing the UOW so that it is distributed, and of causing a failure during syncpoint processing in the indoubt window.

It can be used to cause a failure in syncpoint processing as follows:
  • CIND changes the UOW to be distributed by adding itself to the UOW as the syncpoint initiator and coordinator. This has the effect of simulating a link to a remote CICS® system that has assumed the syncpoint coordinator role and that has sent a syncpoint PREPARE request to CICS. This in turn forces CICS to assume the role of a syncpoint subordinate. Being a syncpoint subordinate means that during the two-phase commit syncpoint protocol, CICS itself becomes indoubt as to the outcome of the UOW. While CICS is indoubt, CIND simulates a link failure to the syncpoint coordinator.
  • If the TRANSACTION resource definition specifies WAIT(YES), the failure in the indoubt window causes CICS to shunt the UOW.
  • If the TRANSACTION resource definition specifies WAIT(NO), a forced decision is taken to commit or back out the UOW, as defined by the TRANSACTION ACTION option. In this case, the UOW is not shunted, but is forced to back out or commit without consulting the coordinator of the distributed UOW.

You can also use CIND to shunt a UOW that is genuinely distributed across multiple CICS systems. It must be activated on the CICS system where the syncpoint is initiated, so that it can assume the role of syncpoint initiator and coordinator before any other CICS systems try to do so. In particular, CIND should not be activated for CICS mirror transactions unless the mirror can be guaranteed to be the syncpoint initiator (that is, a mirror running a server transaction that has been DPLed to specifying SYNCONRETURN).

When active, CIND forces all transactions defined to be in a new transaction class, DFHTCIND, to fail indoubt when they reach syncpoint.

Note: You cannot use CIND on internal CICS system transactions. If you change a system transaction so that it is defined in transaction class DFHTCIND, CIND detects that it is to be used with a CICS system task, and issues message DFHIN1014 to CSMT. The system task continues to run and CIND does not cause it to fail indoubt when it reaches syncpoint.

The required resource definitions for CIND are provided in group DFHINDT, which is a member of group list DFHLIST.