Поделиться через


DTC Transaction States

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

As a transaction occurs, the Component Services administrative tool tracks its progress as a set of states. You can use these states to monitor transactions and to manually resolve those that are stuck in intermediate states such as In Doubt, Cannot Notify Commit, Cannot Notify Abort, and so on. For information about how to get transaction state information and to resolve transactions, see the Help documentation for the Component Services administrative tool on your system.

A transaction may be in one of the following states:

Aborted
The transaction has aborted. All participants have been notified or are currently inaccessible. After a transaction has aborted, it is immediately removed from the list of transactions in the DTC Transaction List window. It is not possible to change the transaction outcome at this point.

Active
The transaction has been started and is under way. It is not possible to change the transaction outcome at this point.

Cannot Notify Abort
The commit coordinator has notified all connected subordinates that the transaction has aborted. However, an IBM LU 6.2 transaction manager is enlisted in the transaction, the connection to that transaction manager has failed, and therefore the abort notification cannot be delivered to that transaction manager. You can force the DTC to forget the transaction by right-clicking the involved transaction in the Transaction List window, pointing to Resolve, and then clicking Forget.

Cannot Notify Commit
The commit coordinator has notified all connected participants that the transaction has committed. However, some subordinates cannot be notified that the transaction has committed because they are currently inaccessible. This transaction state also occurs when the DTC must inform a non-Microsoft transaction manager, such as IBM LU 6.2 or Tuxedo, that a transaction has committed but is unable to do so because the connection to that transaction manager has failed. You can force the DTC to forget the transaction by right-clicking the involved transaction in the Transaction List window, pointing to Resolve, and then clicking Forget.

Committed
The transaction has committed and all participants have been notified. After a transaction commits, it is immediately removed from the list of transactions in the DTC Transaction List window. It is not possible to change the transaction outcome at this point.

Forced Abort
The administrator forced the in-doubt transaction to abort. (See In Doubt.) It is not possible to change the transaction outcome at this point.

Forced Commit
The administrator forced the in-doubt transaction to commit. (See In Doubt.) It is not possible to change the transaction outcome at this point.

In Doubt
The transaction is prepared, but the outcome of the transaction is unknown because the remote transaction manager that is acting as the commit coordinator is inaccessible. The commit coordinator may be either a DTC transaction manager on another system or a transactions manager from a source other than Microsoft. In either event, the DTC lost communication with that transaction manager after preparing but before being told the transaction's outcome. The transaction remains prepared and In Doubt until communication is restored with the superior transaction manager. The system administrator can force the transaction to commit or abort by right-clicking the involved transaction in the Transaction List window, pointing to Resolve, and then clicking Commit or Abort. When a transaction's outcome is forced, the transaction is designated as Forced Commit or Forced Abort.

Prepared
All participants have responded that they have successfully prepared. It is not possible to change the transaction outcome at this point.

Preparing
The application has called commit. The transaction manager has asked the resource managers and subordinate transaction managers to prepare, and it is waiting for all of them to acknowledge that they are prepared. It is not possible to change the transaction outcome at this point.

Unknown
The number of attempted transfers of Commit whose replies were lost and therefore cannot be counted as either Committed or Aborted.

See Also

DTC Event Messages
Example: Transaction Resolution After System Failure
How the DTC Handles Computer Failures
Transaction State Resolution After System Failure