On Thu, Aug 27, 2009 at 7:40 AM, Ruwan Linton <[email protected]>wrote: hi, Submitted. https://issues.apache.org/jira/browse/WSCOMMONS-497
-Rajika Also we need to document that if there is a transaction we will be > continuing that transaction without trying nest the transactions. I know > nested transactions are tricky, so it is OK to not to support them. But we > need to clearly document this. > > Thanks, > Ruwan > > On Thu, Aug 27, 2009 at 7:38 AM, Ruwan Linton <[email protected] > >wrote: > > > Hi Rajika, > > > > I think you are right... please go ahead and provide a patch. > > > > Thanks, > > Ruwan > > > > > > On Wed, Aug 26, 2009 at 4:48 PM, Rajika Kumarasiri <[email protected] > >wrote: > > > >> On Wed, Aug 26, 2009 at 12:02 PM, Rajika Kumarasiri <[email protected]> > >> wrote: > >> hi again, > >> I located the problem. This happens in ServiceTaskManager.java:396 where > >> we > >> create a new user transaction in the while loop. The problem occurs when > >> we > >> try to create a second transaction in the same thread which gives the > >> mentioned exception. I put the following check in which if a tranasction > >> is > >> already associated with the current thread of execution we'll live with > >> it(use-existing-one-or-new). If you are happy with it I can provide it > as > >> a > >> patch. > >> > >> <code> > >> > >> if (transactionality == BaseConstants.TRANSACTION_JTA) { > >> ut = getUserTransaction(); > >> if (ut.getStatus() == Status.STATUS_NO_TRANSACTION) { > >> ut.begin(); > >> } > >> } > >> </code> > >> > >> -Rajika > >> > >> > >> > >> > >> > > >> > On Sun, Aug 2, 2009 at 11:17 PM, Rajika Kumarasiri <[email protected] > >> >wrote: > >> > hello everybody, > >> > I just looked into the problem and it seems the current thread is > >> already > >> > associate with a transaction. I guess we need to get the status of the > >> > current transaction and if there is an existing one we need to join > with > >> it > >> > otherwise we need to start a transaction. > >> > > >> > -Rajika > >> > > >> > > >> > > >> > hello everybody, > >> >> I am trying to use JTA transaction in JMS transport. I deployed the > the > >> >> latest synapse war distribution(I studied that we need to have a JTA > >> >> provider within the J2EE server where we deploy synpase), inside > JBoss > >> >> 5.0.0 GA. It gives the following execption when I use a JTA > trasaction > >> >> (<parameter name="transport.Transactionality">jta</parameter>). It > >> works > >> >> fine with local transactions(<parameter > >> >> name="transport.Transactionality">local</parameter>). According to > the > >> >> stack trace it's clear that we are trying to start a new transaction > >> inside > >> >> the JMS transport while another tx is already in progress. Any help > to > >> fix > >> >> the issue is higly appriciated. Thanks in advance. > >> >> > >> >> My axis2.xml configuration for JMS transport listner is as follows. > >> >> > >> >> <transportReceiver name='jms' > >> >> class='org.apache.axis2.transport.jms.JMSListener'> > >> >> <parameter name='default' locked='false'> > >> >> <parameter > >> >> > >> > name='java.naming.factory.initial'>org.jnp.interfaces.NamingContextFactory</parameter> > >> >> <parameter > >> >> name='java.naming.provider.url'>jnp://localhost:1099</parameter> > >> >> <parameter > >> >> > >> > name='java.naming.factory.url.pkgs'>org.jboss.naming:org.jnp.interfaces</parameter> > >> >> <parameter > >> >> > >> > name='transport.jms.ConnectionFactoryJNDIName'>ConnectionFactory</parameter> > >> >> <parameter > >> name="transport.Transactionality">jta</parameter> > >> >> <parameter > >> >> > name="transport.UserTxnJNDIName">java:comp/UserTransaction</parameter> > >> >> </parameter> > >> >> </transportReceiver> > >> >> > >> >> > >> >> 21:51:41,679 INFO [STDOUT] 21:51:41,678 ERROR [ServiceTaskManager] > >> >> Listener Task is already associated with a transaction > >> >> javax.transaction.NotSupportedException: > >> >> BaseTransaction.checkTransactionState - > >> >> > [com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] > >> >> > [com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] > >> >> thread is already associated with a transaction! > >> >> at > >> >> > >> > com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:79) > >> >> at > >> >> > >> > com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.begin(BaseTransactionManagerDelegate.java:65) > >> >> at > >> >> > >> > org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:137) > >> >> at > >> >> > >> > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:394) > >> >> at > >> >> > >> > org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58) > >> >> at > >> >> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > >> >> at > >> >> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > >> >> at java.lang.Thread.run(Thread.java:595) > >> >> 21:51:41,679 INFO [STDOUT] 21:51:41,679 ERROR [NativeWorkerPool] > >> Uncaught > >> >> exception > >> >> org.apache.axis2.transport.jms.AxisJMSException: Listener Task is > >> already > >> >> associated with a transaction > >> >> at > >> >> > >> > org.apache.axis2.transport.jms.ServiceTaskManager.handleException(ServiceTaskManager.java:957) > >> >> at > >> >> > >> > org.apache.axis2.transport.jms.ServiceTaskManager.access$700(ServiceTaskManager.java:48) > >> >> at > >> >> > >> > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:397) > >> >> at > >> >> > >> > org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58) > >> >> at > >> >> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > >> >> at > >> >> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > >> >> at java.lang.Thread.run(Thread.java:595) > >> >> Caused by: javax.transaction.NotSupportedException: > >> >> BaseTransaction.checkTransactionState - > >> >> > [com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] > >> >> > [com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] > >> >> thread is already associated with a transaction! > >> >> at > >> >> > >> > com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:79) > >> >> at > >> >> > >> > com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.begin(BaseTransactionManagerDelegate.java:65) > >> >> at > >> >> > >> > org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:137) > >> >> at > >> >> > >> > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:394) > >> >> ... 4 more > >> >> 21:51:41,697 INFO [STDOUT] 21:51:41,678 ERROR [ServiceTaskManager] > >> >> Listener Task is already associ > >> >> > >> >> > >> >> > >> >> > >> >> -- > >> >> http://wso2.org > >> >> http://llvm.org > >> >> http://www.minix3.org/ > >> >> > >> >> > >> >> > >> > > >> > > >> > -- > >> > http://wso2.org > >> > http://llvm.org > >> > http://www.minix3.org/ > >> > > >> > > >> > > >> > >> > >> -- > >> http://wso2.org > >> http://llvm.org > >> http://www.minix3.org/ > >> > > > > > > > > -- > > Ruwan Linton > > Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb > > WSO2 Inc.; http://wso2.org > > email: [email protected]; cell: +94 77 341 3097 > > blog: http://ruwansblog.blogspot.com > > > > > > -- > Ruwan Linton > Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb > WSO2 <http://wso2.org/esb%0AWSO2> Inc.; http://wso2.org > email: [email protected]; cell: +94 77 341 3097 > blog: http://ruwansblog.blogspot.com > -- http://wso2.org http://llvm.org http://www.minix3.org/
