CIND—in-doubt testing tool
Chapter 17. CIND—in-doubt testing tool
Use CIND to:
Test the effect of in-doubt failures on application
programs
Produce shunted units of work (UOWs) to test programs
that use SPI commands to inquire on, and change the
characteristics of, shunted UOWs
Unshunt UOWs that have been shunted using CIND.
Note: For a description of the concepts involved in the
synchronization of distributed applications, including
in-doubt periods and shunted UOWs, see the
CICS
Intercommunication Guide
.
CIND can operate in a standalone system; it provides a way
of changing the UOW so that it is distributed, and of causing
a failure during syncpoint processing in the in-doubt 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 in-doubt
as to the outcome of the UOW. While CICS is in-doubt,
CIND simulates a link failure to the syncpoint
coordinator.
If the TRANSACTION resource definition specifies
WAIT(YES), the failure in the in-doubt 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 in-doubt 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 in-doubt when it reaches syncpoint.
Running the CIND in-doubt tool
1. Change the transaction class of the transactions you
want to go in-doubt to DFHTCIND. (You can do this
using CEMT or CEDA.)
2. Type CIND ON. This activates the tool and enables a
task-related user exit for task start. You should get the
following message:
DFHIN11 date time applid termid userid.
The in-doubt tool is now active for
DFHTCIND tranclass transactions.
For every transaction that is started, the task-related
user exit inquires whether it is in transaction class
DFHTCIND. If it is, the task-related user exit issues a
call to the CICS recovery manager to add a link to
CIND, acting as a CICS coordinator system called
DFHINDSP.
3. Run your transactions. If the transactions update
recoverable resources and the TRANSACTION resource
definition specifies the INDOUBT attribute WAIT(YES),
they fail in-doubt. The transaction abends with abend
code ASP1, and the UOW is shunted. You can use the
CEMT INQUIRE UOW SHUNTED command to display
the shunted UOWs.
A transaction that updates non-recoverable resources, or
that issues only READ requests abends with abend code
ASPR. However, the UOW is not shunted, because it is
read-only, so no syncpoint resynchronization is required
with remote coordinator DFHINDSP.
4. Type CIND OFF. This disables the task-related user exit
and stops any further invocations of your transactions
going in-doubt. You should get the following message:
DFHIN14 date time applid termid userid.
The in-doubt tool is no longer active for
DFHTCIND tranclass transactions.
5. Type CIND RESYNC COMMIT or CIND RESYNC
BACKOUT. This simulates a coordinator CICS system
reconnecting to your CICS system. In this case, the
coordinator is DFHINDSP. You should get the following
message:
DFHIN17 date time applid termid userid.
Initiation of resynchronization for units of work
awaiting coordinator DFHINDSP is now complete.
Copyright IBM Corp. 1982, 1999 227