Any participant in the transaction can abort the transaction. The transaction initiator may abort the transaction at any time by calling Abort so long as it has not called Commit. Any resource manager enlisted in the transaction may abort the transaction by calling Abort any time before responding “prepared” at phase one of the two-phase commit protocol. A resource manager may also abort the transaction at phase one of the two-phase commit protocol by responding E_FAIL to the prepare request from the transaction manager.