A method for using available server threads to process resources and
reduce the overall time of performing XA interactions in two-phase commit
protocol implemented by the transaction manager. A TM processing XA
interactions dispatches interaction commands for multiple resources to a
thread manager, which dispatches the commands to idle server threads. In
one embodiment, the TM attempts to dispatch all but one of the
interaction commands to separate threads. The primary thread then
processes the remaining resource command. Any commands relating to
dispatch requests that were unable to be dispatched to separate threads
due to unavailability are processed by the primary thread. Once the
primary server has processed its interaction commands and received a
signal indicating the threads receiving dispatch requests have completed
their respective processing of dispatched commands, the next group of
commands is processed in a similar manner.