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

Reply via email to