Question : Another transaction is associated with this thread.

What does this exception mean?

[2004/12/02 10:43] admin.kipo.sb.rm.rm010.RM010Sb_lyr1cg_ImplinsertOriginalDocument() : Another transaction is associated with this thread. Existing transaction Name=[EJB admin.kipo.sb.rm.rm010.RM010SbBean.insertRevisionDocument(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=BEA1-00021D386CF9(5389474),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=2,seconds left=28,activeThread=Thread[ExecuteThread: '14' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],SCInfo[admin+myserver]=(state=active),properties=({weblogic.transaction.name=[EJB admin.kipo.sb.rm.rm010.RM010SbBean.insertRevisionDocument(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+10.133.20.189:1004+admin+t3+, XAResources={},NonXAResources={})])

Answer : Another transaction is associated with this thread.

I post here something from MetaLink Note:227751.1 - Integrating BEA WebLogic with OJMS - , maybe it can help you a little:

...
WebLogic Server supports two modes of XA resources enlistment: static and dynamic. In the following Dynamic enlistment used by Oracle is discussed.

Dynamic Enlistment and Delistment
---------------------------------

XA resource providers can also perform enlistment and delistment themselves by registering as using dynamic enlistment. In this case, the XA resource provider itself plays the role of JTA application server partially in performing
enlistment and delistment. The advantage of dynamic enlistment is that resource provider can optionally perform lazy enlistment to avoid enlisting resources unnecessarily.

To dynamically enlist the XA resource, the XA resource provider does the following:

import javax.transaction.Transaction;

// Obtain the current transaction via JNDI or TxHelper

Transaction tx = TxHelper.getTransaction();

tx.enlistResource(res);

Resource enlistment and delistment are potentially expensive operations. As an optimization, the WebLogic Server transaction manager ignores duplicate enlistments of the same resource in the same thread.

To dynamically delist the XA resource, the XA resource provider obtains the transaction as above, and calls the delistResource method, supplying the delist flag as well.

tx.delistResource(res, flag);

Note that for resources that are registered as dynamically enlisted, the enlistment step is essential. However, the delistment step is optional.
...

Random Solutions  
 
programming4us programming4us