activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Giampaolo Tranchida (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-3251) javax.jms.TransactionInProgressException: Cannot rollback() inside an XASession
Date Thu, 20 Oct 2011 04:42:10 GMT

    [ https://issues.apache.org/jira/browse/AMQ-3251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131366#comment-13131366
] 

Giampaolo Tranchida commented on AMQ-3251:
------------------------------------------

Same issue but only when I add

<property name="transacted" value="true"/>

setting only the transactionManager seems to work.


                
>  javax.jms.TransactionInProgressException: Cannot rollback() inside an XASession
> --------------------------------------------------------------------------------
>
>                 Key: AMQ-3251
>                 URL: https://issues.apache.org/jira/browse/AMQ-3251
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Fuse ESB - 4.3.1-01-09
>            Reporter: Charles Moulliard
>            Assignee: Gary Tully
>             Fix For: 5.6.0
>
>
> The following error is generated when trying to configure ActiveMQ with JTA/XA
> {code}
> 15:09:39,373 | WARN  | tenerContainer-1 | PooledSession                    | 47 - org.apache.activemq.activemq-pool
- 5.4.2.fuse-03-09 | Caught exception trying rollback() when putting session back into the
pool: javax.jms.TransactionInProgressException: Cannot rollback() inside an XASession
> javax.jms.TransactionInProgressException: Cannot rollback() inside an XASession
> 	at org.apache.activemq.ActiveMQXASession.rollback(ActiveMQXASession.java:76)
> 	at org.apache.activemq.pool.PooledSession.close(PooledSession.java:111)
> 	at org.apache.activemq.pool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:90)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:542)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:535)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:326)
> 	at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250)
> 	at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1009)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
> 	at org.apache.aries.transaction.GeronimoPlatformTransactionManager.commit(GeronimoPlatformTransactionManager.java:76)
> 	at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_24]
> 	at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_24]
> 	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at $Proxy409.commit(Unknown Source)[:]
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at java.lang.Thread.run(Thread.java:680)[:1.6.0_24]
> 15:09:39,381 | WARN  | tenerContainer-1 | Transaction                      | 49 - org.apache.aries.transaction.manager
- 0.2.0.incubating | Unexpected exception from afterCompletion; continuing
> java.lang.RuntimeException: javax.jms.JMSException: Failed to invalidate session: org.apache.activemq.AlreadyClosedException:
Cannot use The session has already been closed as it has already been closed
> 	at org.apache.activemq.pool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:93)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:542)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:535)
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:326)
> 	at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250)
> 	at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1009)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
> 	at org.apache.aries.transaction.GeronimoPlatformTransactionManager.commit(GeronimoPlatformTransactionManager.java:76)
> 	at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_24]
> 	at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_24]
> 	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)[71:org.springframework.osgi.core:1.2.0]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)[60:org.springframework.aop:3.0.5.RELEASE]
> 	at $Proxy409.commit(Unknown Source)[:]
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)[110:org.springframework.jms:3.0.5.RELEASE]
> 	at java.lang.Thread.run(Thread.java:680)[:1.6.0_24]
> Caused by: javax.jms.JMSException: Failed to invalidate session: org.apache.activemq.AlreadyClosedException:
Cannot use The session has already been closed as it has already been closed
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
> 	at org.apache.activemq.pool.SessionPool.invalidateSession(SessionPool.java:77)
> 	at org.apache.activemq.pool.PooledSession.close(PooledSession.java:123)
> 	at org.apache.activemq.pool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:90)
> 	... 33 more
> Caused by: org.apache.activemq.AlreadyClosedException: Cannot use The session has already
been closed as it has already been closed
> 	at org.apache.activemq.pool.PooledSession.getInternalSession(PooledSession.java:291)
> 	at org.apache.activemq.pool.SessionPool.destroyObject(SessionPool.java:90)
> 	at org.apache.commons.pool.impl.GenericObjectPool.invalidateObject(GenericObjectPool.java:1258)
> 	at org.apache.activemq.pool.SessionPool.invalidateSession(SessionPool.java:75)
> {code}
> Here is the config used to access to AMQ Broker
> {code}
>     <!-- Tx Manager -->
>     <osgi:reference id="txManager" interface="org.springframework.transaction.PlatformTransactionManager"/>
>     <!-- Transaction POLICY used by Camel Transactional Route
>          We refer to the ServiceMiX TxManager -->
>     <bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy">
>        <property name="transactionManager" ref="txManager"/>
>     </bean>
>     <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
>         <!-- <property name="configuration" ref="jmsConfig"/> -->
>         <property name="connectionFactory">
>             <osgi:reference interface="javax.jms.ConnectionFactory"/>
>         </property>
>         <property name="transactionManager" ref="txManager"/>
>         <property name="transacted" value="true"/>
>         <property name="cacheLevel" value="0" />
>     </bean>
>     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
>         <route id="queue-create-incident">
>             <from uri="activemq:queue:incident"/>
>             <transacted ref="PROPAGATION_REQUIRED"/>
>             <log message=">>> Incident received : ${body}"/>
>             <bean ref="processIncident" method="saveReport"/>
>             <!-- <bean ref="processIncident" method="generateError"/> -->
>             <log message=">>> Record inserted : ${body}"/>
>         </route>
> 2) ActiveMQ
>     <bean id="activemqConnectionFactory" class="org.apache.activemq.ActiveMQXAConnectionFactory">
>         <property name="brokerURL" value="tcp://localhost:61616" />
>         <property name="redeliveryPolicy" ref="redeliveryPolicy"/>
>     </bean>
>     <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.XaPooledConnectionFactory">
>         <property name="maxConnections" value="8" />
>         <property name="connectionFactory" ref="activemqConnectionFactory" />
>         <property name="transactionManager" ref="transactionManager"/>
>     </bean>
>     <bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
>         <property name="maximumRedeliveries" value="0"/>
>     </bean>
>     <reference id="transactionManager" interface="javax.transaction.TransactionManager"
/>
>     <service ref="pooledConnectionFactory" interface="javax.jms.ConnectionFactory">
>         <service-properties>
>             <entry key="name" value="localhost"/>
>         </service-properties>
>     </service>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message