Platform SDK: Transaction Server

Transaction Commit

The participant who called BeginTransaction is the only party who can call Commit. No other participant in the transaction can commit the transaction.

An application program should not call Commit while a resource manager operation is outstanding for the transaction. An application program which invokes asynchronous operations must wait for all asynchronous operations to complete before committing the transaction. An application program which violates this rule runs the risk of committing the transaction prematurely. MS DTC does nothing to prevent transactions from committing prematurely. Resource managers must be capable of handling premature commit requests. If a resource manager receives a commit request while doing work on behalf of a transaction, it can either abort the transaction or complete the request before committing the transaction.