jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cory Prowse <c...@prowse.com>
Subject Auto-commit true in JCA (was Re: Transaction "TX_0" not found on first repository access)
Date Tue, 12 Oct 2010 08:14:34 GMT
Hi,

I've been looking into the exception thrown upon the first access to Jackrabbit when deployed
as JCA.

What I believe is the root cause is that the ConnectionRecoveryManager always enables auto-commit,
causing any distributed transactions to fail (since the two phase commit can't work since
it is already auto commited).

So, does the ConnectionRecoveryManager need to enable auto-commit?
Can auto-commit be forced to always be disabled when Jackrabbit is deployed using JCA?

 -- Cory


On 11/10/2010, at 5:47 PM, Cory Prowse wrote:

> Hi,
> 
> I'm attempting to deploy Jackrabbit using the JCA deployment and seeing an error about
an unknown transaction "TX_0" upon first access to the Repository.
> 
> I am deploying to Glassfish 3.0.1 and using H2 as the database.
> This is with Jackrabbit 2.1.1, however I also checked out the latest trunk and attempted
to use a build from that but it seems broken at the moment.
> 
> The error is:
> javax.transaction.xa.XAException: Transaction "TX_0" not found; SQL statement:
> COMMIT TRANSACTION TX_0 [90129-142]
> 
> After digging through the running code, I discovered it was being thrown from the XaSessionImpl.commit()
method.
> The same XID is passed into all methods, and the order of calls to XASessionImpl is:
> 1. start
> 2. end
> 3. prepare
> 4. commit - (note: the parameter onephase is false so no prepare is called inside this
method)
> 
> Also note that although the first usage is not a onephase transaction, future calls are
and there are no calls to XASessionImpl.prepare().
> 
> Can anyone shed some more light on this issue?
> I'm worried that Jackrabbit isn't initialising itself correctly on startup?
> 
> -- Cory


Mime
View raw message