Hi everyone,

I use the Geronimo TransactionManager with 
org.jencks.amqpool.XaPooledConnectionFactory for ActiveMQ and OpenJPA for a 
database.
Everything is configured with spring.

I've done a simple test that take a message from a queue ("input queue"), 
persist it in a database and then send this message into another queue ("output 
queue"). Those steps are processed in the same global transaction (JTA).
I don't know why, but when I start my bundle without sending any message to the 
"input queue", I see plenty of logs and a lot of warnings.

Does someone have any idea why I get these stackTrace :

WARN [DefaultMessageListenerContainer-1] (PooledSession.java:112) - Caught 
exception trying rollback() when putting session back into the pool: 
javax.jms.TransactionInProgressException: Cannot rollback() if an XA 
transaction is already in progress
javax.jms.TransactionInProgressException: Cannot rollback() if an XA 
transaction is already in progress
                at 
org.apache.activemq.TransactionContext.rollback(TransactionContext.java:238)
                at 
org.apache.activemq.ActiveMQSession.rollback(ActiveMQSession.java:580)
                at 
org.jencks.amqpool.PooledSession.close(PooledSession.java:109)
                at 
org.jencks.amqpool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:89)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:540)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:533)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:329)
                at 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
                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 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
                at java.lang.Thread.run(Thread.java:619)
WARN [DefaultMessageListenerContainer-1] 
(DefaultMessageListenerContainer.java:821) - Setup of JMS message listener 
invoker failed for destination 'SimpleInWithExceptionB' - trying to recover. 
Cause: Local JMS transaction failed to commit; nested exception is 
org.apache.activemq.AlreadyClosedException: Cannot use The session has already 
been closed as it has already been closed
INFO [DefaultMessageListenerContainer-1] 
(DefaultMessageListenerContainer.java:862) - Successfully refreshed JMS 
Connection
WARN [DefaultMessageListenerContainer-1] (TransactionImpl.java:208) - Unable to 
enlist XAResource org.apache.activemq.TransactionContext@62953a, errorCode: -6
javax.transaction.xa.XAException
                at 
org.apache.activemq.TransactionContext.start(TransactionContext.java:334)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource(TransactionImpl.java:202)
                at 
org.jencks.amqpool.XaConnectionPool.createSession(XaConnectionPool.java:56)
                at 
org.jencks.amqpool.PooledConnection.createSession(PooledConnection.java:132)
                at 
org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.access$1(AbstractPollingMessageListenerContainer.java:1)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer$MessageListenerContainerResourceFactory.createSession(AbstractPollingMessageListenerContainer.java:530)
                at 
org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:300)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:288)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
                at java.lang.Thread.run(Thread.java:619)
WARN [DefaultMessageListenerContainer-1] (TransactionImpl.java:542) - 
Unexpected exception from afterCompletion; continuing
java.lang.RuntimeException: org.apache.activemq.AlreadyClosedException: Cannot 
use The session has already been closed as it has already been closed
                at 
org.jencks.amqpool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:92)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:540)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:533)
                at 
org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:496)
                at 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:265)
                at 
org.springframework.transaction.jta.JtaTransactionManager.doRollback(JtaTransactionManager.java:1036)
                at 
org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:845)
                at 
org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822)
                at 
org.apache.aries.transaction.GeronimoPlatformTransactionManager.rollback(GeronimoPlatformTransactionManager.java:80)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.rollbackOnException(AbstractPollingMessageListenerContainer.java:410)
                at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
                at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
                at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.activemq.AlreadyClosedException: Cannot use The session 
has already been closed as it has already been closed
                at 
org.jencks.amqpool.PooledSession.getSession(PooledSession.java:283)
                at org.jencks.amqpool.PooledSession.close(PooledSession.java:91)
                at 
org.jencks.amqpool.XaConnectionPool$Synchronization.afterCompletion(XaConnectionPool.java:89)
                ... 14 more


Arnaud Deprez
Analyst-Programmer
Acquiring Back-Office
+32 2 727 72 09
arnaud.dep...@atos.net<http://intranet.atosworldline.com/Region1-fr/firstname.lastn...@atos.net>
Chaussee de Haecht 1442 Haachtsesteenweg
1130 Brussels
Belgium
atosworldline.be<http://atosworldline.be/>
[cid:image002.gif@01CD2D3E.5A8377C0]
P please don't print unless you really need to


________________________________

Atos Worldline SA/NV - Chaussee de Haecht 1442 Haachtsesteenweg
- 1130 Brussels - Belgium
RPM-RPR Bruxelles-Brussel - TVA-BTW BE 0418.547.872
Bankrekening-Compte Bancaire-Bank Account 310-0269424-44
BIC BBRUBEBB - IBAN BE55 3100 2694 2444

"The information contained in this e-mail and any attachment thereto is 
confidential and may contain information which is protected by intellectual 
property rights.
This information is intended for the exclusive use of the recipient(s) named 
above.
This e-mail does not constitute any binding relationship or offer toward any of 
the addressees.
If you are not one of the addressees , one of their employees or a proxy holder 
entitled to hand over this message to the addressee(s), any use of the 
information contained herein (e.g. reproduction, divulgation, communication or 
distribution,...) is prohibited.
If you have received this message in error, please notify the sender and 
destroy it immediately after.
The integrity and security of this message cannot be guaranteed and it may be 
subject to data corruption, interception and unauthorized amendment, for which 
we accept no liability."

Reply via email to