Hi,
Craig Day wrote:
> Ive found and fixed what appears to be a buy in TxCapsule (1.22) current CVS.
> Im new to this XA stuff but here goes anyway:
>
> The call addResource(XAResource xaRes, Xid branchXid, int idxSameRM)
> has the following code:
>
> Xid[] xids = new Xid[resourceAllocSize];
>
> System.arraycopy(resourceXids, 0, xid, 0, resourceCount)
> resourceXids = xids;
>
> the third parameter to the arraycopy should be (IMHO :) ) "xids". Couldnt get
> it to work any other way.
Yes, this is a bug.
I'll fix it in CVS today.
> As for Oracle, Ive been testing with the current CVS using the 8.1.7 thin
> driver
> (classes12.zip) with Oracles Xid class specified via the properties against an
> 8.1.6.2 Oracle database.. It was failing until I fixed the above bug, and then
> REENABLED the optimization previously removed due to Oracle problems.
> The optimization looks to correctly identify resource managers already in the
> transaction. Without it, Id get an ORA:2045 which is "too many local sessions
> participating in global transaction" - makes sense. So with the above fixes
> everything works fine. The oracle README on the 8.1.7 thin driver says the
> OracleXid class is no longer required *IF* you are running against an 8.1.7
> database.
With recent CVS, this optimization is only
avoided if you specify a special XID class
in jboss.properties. The 8.1.6 XA drivers
needs a special XID class due to an XA
incompatibility, but this is not the case
with 8.1.7.
So I guess removing the XID class specification
in jboss.properties will get you around this
problem without changing TxCapsule.java code.
Best Regards,
Ole Husgaard.
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
List Help?: [EMAIL PROTECTED]