Asynchronous Committing of Transactions
By default, the Transaction Service executes the commit protocol of a top-level transaction in a synchronous manner. All registered resources will be told to prepare in order by a single thread, and then they will be told to commit or rollback. This has several possible disadvantages: In the case of many registered resources, the prepare operating can logically be invoked in parallel on each resource. The disadvantage is that if an “early� resource in the list of registered resource forces a rollback during prepare, possibly many prepare operations will have been made needlessly. In the case where heuristic reporting is not required by the application, the second phase of the commit protocol can be done asynchronously, since its success or failure is not important.