Life of a Transaction: Transaction Commit Phase 2–Commit II (Phases)

k8.1 The resource manager does the work necessary to commit the transaction. This includes releasing all locks held on behalf of the transaction. The resource manager then writes a Commit record for the transaction to the resource manager’s log file. If it chooses, the resource manager can do a lazy log file write to economize on log I/Os. When the write to the log finishes, the resource manager proceeds to the next step.
k8.2 The resource manager invokes the ITransactionEnlistmentAsync::CommitRequestDone method to inform the MS DTC proxy that it has completed the commit phase of the two-phase commit protocol.
k9 The MS DTC proxy informs the resource manager’s transaction manager that the resource manager has completed phase two processing.
k10.1 When all of the resource managers on the system have completed their phase two processing, the resource manager’s transaction manager writes a Forget record to its local transaction manager log file. If it chooses, the transaction manager can do a lazy log file write to economize on log I/Os. After the log write completes, the transaction manager forgets the transaction and proceeds to the next step.
k10.2 The resource manager’s transaction manager informs the client’s transaction manager that phase two is complete.
k11 The client’s transaction manager waits until all of its subordinate transaction managers have responded. It then writes a Forget record to the transaction manager log file. If it chooses, the transaction manager can do a lazy log file write to economize on log I/Os. The transaction manager then forgets the transaction.