3.4. Threads of Control
The X/Open
XA
interface specifies that the XA calls related to transaction associations must be invoked from the same thread context. This thread-of-control requirement is not applicable to the object-oriented component-based application run-time environment, in which application threads are dispatched dynamically at method invocation time. Different threads may use the same connection resource to access the resource manager if the connection spans multiple method invocations. Depending on the implementation of the application server, different threads may be involved with the same XAResource
object. The resource context and the transaction context may operate independent of thread context. Therefore, different threads may invoke the start
and end
methods.
If the application server allows multiple threads to use a single
XAResource
object and its associated connection to the resource manager, the application server must ensure that only one transaction context is associated with the resource at any point in time. Therefore, the XAResource
interface requires the resource managers to be able to support the two-phase commit protocol from any thread context.