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.

Reply via email to