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-parms
    Indicates to execute the DCMT command on all or a list of data sharing group members.
    For more information about broadcasting and 
    broadcast-parms
     syntax, see How to Broadcast System Tasks.
  • DISTributed TRansaction
    Identifies the transaction to be varied. The possible values are the following:
    • BID
      branch-id
      Varies the distributed transaction whose top level branch has this BID. The
      branch-id
      value must use the following rules:
      • Be enclosed in single quotes
      • Have the format: 'zzzzzzzzzzzzzzzz'
      • Match a value on the summary display
    • ID
      dist-tran-id
      Varies the distributed transaction assigned to this ID. The
      dist-tran-id
      value must use the following rules:
      • Be enclosed in single quotes
      • Have the format: 'xxxxxxxx::yyyyyyyyyyyyyyyy'
      • Match a value on the summary display
    • XID
      ext-tran-id
      Varies the distributed transaction assigned to this XID. The
      ext-tran-id
      value must use the following rules:
      • Be enclosed in single quotes
      • Contain an XA XID or RRS URID
      • Be in hex format
  • BACkout
    Specifies that the transaction should be backed out. BACkout can be specified only if the transaction's state is InDoubt or InBackout.
  • COMmit
    Specifies that the transaction should be committed. COMmit can be specified only if the transaction's state is InDoubt or InCommit.
  • FORget
    Specifies 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.