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]

Reply via email to