DCMT VARY DISTRIBUTED TRANSACTION
This command forces the completion of a distributed transaction that either:
idmscu19
This command forces the completion of a distributed transaction that either:
- Is pending re-synchronization
- Has no associated task or user session
This article describes the following information:
Syntax
►►─── DCMT ─┬───────────────────┬─────────────────────────────────────────────► └─broadcast-parms─┘ ►─── Vary DISTributed TRansaction ─┬─ BID 'branch-id' ───┬─┬─ BACKout ─┬─────►◄ ├─ ID 'dist-tran-id' ─┤ ├─ COMmit ──┤ └─ XID 'ext-tran-id' ─┘ └─ FORget ──┘
Parameters
- broadcast-parmsIndicates to execute the DCMT command on all or a list of data sharing group members.For more information about broadcasting andbroadcast-parmssyntax, see How to Broadcast System Tasks.
- DISTributed TRansactionIdentifies the transaction to be varied. The possible values are the following:
- BIDbranch-idVaries the distributed transaction whose top level branch has this BID. Thebranch-idvalue must use the following rules:
- Be enclosed in single quotes
- Have the format: 'zzzzzzzzzzzzzzzz'
- Match a value on the summary display
- IDdist-tran-idVaries the distributed transaction assigned to this ID. Thedist-tran-idvalue must use the following rules:
- Be enclosed in single quotes
- Have the format: 'xxxxxxxx::yyyyyyyyyyyyyyyy'
- Match a value on the summary display
- XIDext-tran-idVaries the distributed transaction assigned to this XID. Theext-tran-idvalue must use the following rules:
- Be enclosed in single quotes
- Contain an XA XID or RRS URID
- Be in hex format
- BACkoutSpecifies that the transaction should be backed out. BACkout can be specified only if the transaction's state is InDoubt or InBackout.
- COMmitSpecifies that the transaction should be committed. COMmit can be specified only if the transaction's state is InDoubt or InCommit.
- FORgetSpecifies the transaction should be forgotten. FORGet can be specified only if the transaction's state is InCommit or InBackout.
Usage
Completing Transactions Manually
Only distributed transactions that are pending resynchronization or have no task or user session can be completed manually using a DCMT VARY DISTRIBUTED TRANSACTION command. The need for issuing this command is extremely rare and only as a result of a resynchronization failure.
When a DCMT command is used to force an InDoubt transaction to commit or backout, the transaction branch is flagged as being heuristically committed or backed out and its outcome is HC or HR respectively. Heuristically completed transactions must be explicitly forgotten by doing one of the following:
- Issuing a DCMT command
- Allowing the coordinator to direct that the branch be forgotten
The coordinator should be given the chance to do so, unless it is permanently disabled or its journal files (in the case of CA IDMS) were prematurely formatted thereby eliminating the information required to complete the transaction.
Example
DCMT VARY DISTRIBUTED TRANSACTION
To complete a distributed transaction whose state is InDoubt:
DCMT V DIST TR ID 'SYSTEM74::01650D6EDFB1AB93' COMMIT Transaction COMMIT initiated.