users@glassfish.java.net

Resource Adapter call to XATeminator.recover hangs App Server

From: <glassfish_at_javadesktop.org>
Date: Tue, 11 Dec 2007 08:27:06 PST

I previously entered this issue against Sun Java System Application Server Enterprise Edition 8.2. See
http://forum.java.sun.com/thread.jspa?forumID=734&threadID=5202307



I am the developer for a JCA 1.5 resource adapter named DTPRA. Note that DTPRA works with WebSphere Application Server, WebLogic Application Server and JBoss Application Server.

I needed to test DTPRA with the Sun App Server, so I downloaded Sun Java System Application Server Enterprise Edition 9.1 (build b58g-fcs) to test DTPRA.

I am now testing transaction recovery, so I set automatic recovery to true. That is, I have the following in my domain.xml:

&lt;transaction-service [b]automatic-recovery="true"[/b] heuristic-decision="rollback" keypoint-interval="65536" retry-timeout-in-seconds="600" timeout-in-seconds="0" tx-log-dir="${com.sun.aas.instanceRoot}/logs"/&gt;


When I start the App Server with this setting, the App Server hangs and it never starts.

Looking at trace output from DTPRA, it is clear that the following has happened:
1) The App Server called the ResourceAdapter.start method for DTPRA.
2) As part of DTPRA startup, DTPRA calls the App Server's XATerminator.recover method to see if there are inbound transactions to recover.

The call to XATerminator.recover never returns. Apparently there is some sort of deadlock in the App Server when a resource adapter calls XATerminator.recover from the ResourceAdapter.start method.

[b]This only occurs when automatic recovery is enabled.[/b]

This seems like a bug in the App Server. Any help would be appreciated.

With the past post, I was asked to get a thread dump, but I don't know how to do that. If that is required, can someone give me instructions?

Thanks.
[Message sent by forum member 'burdeasa' (burdeasa)]

http://forums.java.net/jive/thread.jspa?messageID=249528