iocanel wrote:
>
>
> alodde wrote:
>>
>> Does someone can conform my that this is the desired behaviour of xa
>> transactional jms consumer! I wonder if it is enough to just enable
>> transaction for the jms consumer as the message exchanges are send
>> synchronous to the next endpoint and do not care about the nmr. Or does
>> the messages in the nmr also have to handled transactive (e.g. get
>> persists)
>>
>
> The desired behavior of the transactional jms consumer is to rollback if
> the exchange fails. In your case it doesn't matter weather you choose xa
> or jms transacted type cause the only transactional resource in your flow
> is the jms consumer.
>
> When you remove transacted="xa" then it works with the default transacted
> mode which is no transaction. That's why after the failure the message is
> no longer inside the queue.
>
>
>
>
Hi, thanks for you fast replay.
I wasn't sure if I am using xa-transaction because I am not specifying a
xa-connection-factory for the jms service unit. If I define a
ActiveMQXAConnectionFactor instead of a ActiveMQConnectionFactor I will run
into the following exception:
08:47:16,738 | WARN | DefaultMessageListenerContainer-1 | PooledSession
| he.activemq.pool.PooledSession 113 | 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.springframework.jms.connection.JmsResourceHolder.closeAll(JmsResourceHolder.java:196)
at
org.springframework.jms.connection.ConnectionFactoryUtils$JmsResourceSynchronization.releaseResource(ConnectionFactoryUtils.java:413)
at
org.springframework.transaction.support.ResourceHolderSynchronization.afterCompletion(ResourceHolderSynchronization.java:93)
at
org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:157)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:974)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:949)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:777)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
at
org.jencks.GeronimoPlatformTransactionManager.commit(GeronimoPlatformTransactionManager.java:76)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
at java.lang.Thread.run(Thread.java:595)
--
View this message in context:
http://old.nabble.com/transaction-servicemix-3.4-tp28532633p28555941.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.