Hi Dan,
I am not very advanced in XA transactions. I went thought the Java
Transaction API and "Distributed Transaction Processing: The XA
Specification" from The Open Group.
One of my colleagues experiences problems when his application server
crashes and the locks held by the running XA transaction never get released.
With an XA transaction the connection (the logical connection as seen
by the application) can be closed and the transaction remain active.
Yes, but the transaction should be suspended before closing the logical
connection - by calling XAResource.end(xid, TMSUSPEND). Shouldn't it?
Since the XAResource object is accessed thought the call to
XAConnection.getXAResource and the underlying Connection object is the
same I would expect that the work between XAResource.start and
XAResource.end calls have to be done using the same Connection object?
Thus, if the socket will be closed before the call to XAResource.end
there is no way how to commit a change by the application. How else
should we know that the client application crashed?
Is it possible to re-word the summary of DERBY-2220?
Yes, I have done that.
Cheers
Julo