2.2.2.3.1 TRACKING_STATUS

The TRACKING_STATUS enumeration specifies the status of a transaction (managed by the transaction manager) and is reported by the Management Server role in the dwStatus field of a DtcUITranListElement structure.

 typedef  enum 
 {
   XACTSTAT_OPEN = 0x00000003,
   XACTSTAT_PREPARING = 0x00000004,
   XACTSTAT_PREPARED = 0x00000008,
   XACTSTAT_COMMITTING = 0x00000040,
   XACTSTAT_ABORTING = 0x00000100,
   XACTSTAT_ABORTED = 0x00000200,
   XACTSTAT_FORCED_ABORT = 0x00000201,
   XACTSTAT_COMMITTED = 0x00000400,
   XACTSTAT_FORCED_COMMIT = 0x00000401,
   XACTSTAT_NOTIFYING_COMMITTED = 0x00000801,
   XACTSTAT_ONLY_FAILED_COMMITTED_REMAIN = 0x00000C01,
   XACTSTAT_INDOUBT = 0x00020000,
   XACTSTAT_FORGET = 0x00080001
 } TRACKING_STATUS;

XACTSTAT_OPEN:  This status indicates the transaction is still in the active phase.

XACTSTAT_PREPARING:  This status indicates the transaction is preparing.

XACTSTAT_PREPARED:  This status indicates the transaction is prepared.

XACTSTAT_COMMITTING:  This status indicates the transaction is committing.

XACTSTAT_ABORTING:  This status indicates the transaction is aborting.

XACTSTAT_ABORTED:  This status indicates the transaction is aborted.

XACTSTAT_FORCED_ABORT:  This status indicates the transaction was forced to abort (by external intervention).

XACTSTAT_COMMITTED:  This status indicates the transaction is committed.

XACTSTAT_FORCED_COMMIT:  This status indicates the transaction was forced to commit.

XACTSTAT_NOTIFYING_COMMITTED:  This status indicates the transaction is committed and subordinate participants are being notified.

XACTSTAT_ONLY_FAILED_COMMITTED_REMAIN:  This status indicates the transaction is in the Failed to Notify state.

XACTSTAT_INDOUBT:  This status indicates the transaction is in doubt.

XACTSTAT_FORGET:  This status indicates the transaction has completed and the transaction manager does not manage it any more.

The dwStatus field reported by the Management Server role is based on the transaction states provided by [MS-DTCO], section 3.2.1.3 as specified in the following table.

[MS-DTCO] Transaction States

Description

TRACKING_STATUS

Idle

The transaction has not been created yet.

Not Applicable

Active

Not Applicable

XACTSTAT_OPEN

Phase Zero

Not Applicable

XACTSTAT_PREPARING

Phase Zero Complete

Not Applicable

XACTSTAT_PREPARING

Voting

Not Applicable

XACTSTAT_PREPARING

Voting Complete

Not Applicable

XACTSTAT_PREPARING

Phase One

Not Applicable

XACTSTAT_PREPARING

Phase One Complete

Not Applicable

XACTSTAT_PREPARED

Single Phase Commit

Not Applicable

XACTSTAT_PREPARED

Committing

The [MS-DTCO] Transaction State is Committing.

XACTSTAT_COMMITTING

Committing

The [MS-DTCO] Transaction State is Committing and the "Enlistment Commit Complete" event is signaled as specified in [MS-DTCO] section 3.2.7.15.

XACTSTAT_COMMITTED

Committing

The [MS-DTCO] Transaction State is Committing, the "Enlistment Commit Complete" event is signaled as specified in [MS-DTCO] section 3.2.7.15 and the transaction was forced to commit (by external intervention).

XACTSTAT_FORCED_COMMIT

Committing

The [MS-DTCO] Transaction State is Committing and all the subordinate participants are being notified.

XACTSTAT_NOTIFYING_COMMITTED

Aborting

Not Applicable

XACTSTAT_ABORTING

Aborting

The [MS-DTCO] Transaction State is Aborting and the "Enlistment Rollback Complete" event is signaled as specified in [MS-DTCO] section 3.2.7.18.

XACTSTAT_ABORTED

Aborting

The [MS-DTCO] Transaction State is Aborting, the "Enlistment Rollback Complete" event is signaled as specified in [MS-DTCO] section 3.2.7.18 and the transaction was forced to abort (by external intervention).

XACTSTAT_FORCED_ABORT

In Doubt

Not Applicable

XACTSTAT_INDOUBT

Failed to Notify

Not Applicable

XACTSTAT_ONLY_FAILED_COMMITTED_REMAIN

Ended

Not Applicable

XACTSTAT_FORGET