One-Pipe Resource Manager Commit Phase 2—Commit
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
The transaction manager writes the transaction commit record to the transaction manager log file.
The transaction manager initiates the following sequence:
Starts phase two of the two-phase commit process. The transaction manager sends a commit message, in parallel, to the DTC proxy of each enlisted ODBC driver.
Awaits notification from all of the enlistees involved in the transaction that they have completed their commit work.
Each DTC proxy invokes the ODBC drivers ITransactionResourceAsync::CommitRequest method to inform the ODBC driver that it should perform phase two of the two-phase commit protocol.
Each ODBC driver should immediately respond to the CommitRequest to acknowledge its receipt.
The ODBC driver sends an xa_commit_entry message to the resource manager.
The resource manager commits and then replies to the xa_commit_entry message.
The ODBC driver receives the reply to the xa_commit_entry message and invokes ITransactionEnlistmentAsync::CommitRequestDone to inform the DTC proxy that it has completed the commit phase of the two-phase commit protocol.
The DTC proxy informs the transaction manager that the ODBC driver has completed phase two.
When all of the ODBC drivers on the system complete phase two, the transaction manager writes a forget record to its log file. Optionally, the transaction manager can do a lazy log file write to economize on log I/Os. The transaction manager then forgets the transaction.