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.
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.
Im only running against 8.1.6 so Im using it.
cheers
craig
p.s. we dont do CMP but heaps of BMP. The app is getting quite sophisticated,
many session beans, many entity beans, several different container
configurations
with varied commit options.
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
List Help?: [EMAIL PROTECTED]