activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pwanner <pwan...@pwanner.com>
Subject JTA with durable topic
Date Wed, 04 May 2016 13:43:32 GMT
Hi,

I have configured Spring DefaultMessageListenerContainer to work with the
Jboss TX manager in XA mode and with a queue destination it works fine, when
throwing a RuntimeException in the listener the message is rolled back and
redelivered 5 times before beeing sent to the DLQ.

But when I try to do the same with a durable topic destination the message
is rolledback and redelivered forever thus never sent to the DLQ.

Does anyone have an idea of what I do wrong?


I use Jboss EAP 6.4.6 just for the TX, ActiveMQ 5.13.2 out of the box,
Spring 4.2.5

This is the config for a queue that works:

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jms="http://www.springframework.org/schema/jms" 
	xmlns:tx="http://www.springframework.org/schema/tx" 
	xsi:schemaLocation="http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee.xsd
		http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms.xsd
		http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

	<tx:jta-transaction-manager/>

	<jms:listener-container concurrency="1"
		destination-type="queue"
		connection-factory="amqXaPoolConnectionFactory"
		transaction-manager="transactionManager">
		<jms:listener destination="testQueue" ref="testListener" method="execute"
/>
	</jms:listener-container>

	<bean id="testListener" class="tx.TestListener"/>

	<bean id="jtaTransactionManager" factory-bean="transactionManager"
factory-method="getTransactionManager"/>

	<bean id="amqXaPoolConnectionFactory"
class="org.apache.activemq.pool.XaPooledConnectionFactory"
		p:maxConnections="10"
		p:connectionFactory-ref="amqXAConnectionFactory"
		p:transactionManager-ref="jtaTransactionManager"/>

	<bean id="amqXAConnectionFactory"
class="org.apache.activemq.ActiveMQXAConnectionFactory"
	
p:brokerURL="failover://(tcp://localhost:61616)?jms.prefetchPolicy.all=1&amp;timeout=5000"/>

</beans>


This is the config for a durable topic that dosen't work:


<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jms="http://www.springframework.org/schema/jms" 
	xmlns:tx="http://www.springframework.org/schema/tx" 
	xsi:schemaLocation="http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee.xsd
		http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms.xsd
		http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

	<tx:jta-transaction-manager />

	<jms:listener-container concurrency="1"
		destination-type="durableTopic" 
		connection-factory="amqXaPoolConnectionFactory"
		transaction-manager="transactionManager">
		<jms:listener destination="testTopic" ref="testListener" method="execute"
/>
	</jms:listener-container>

	<bean id="testListener" class="tx.TestListener" />

	<bean id="jtaTransactionManager" factory-bean="transactionManager"
		factory-method="getTransactionManager" />

	<bean id="amqXaPoolConnectionFactory"
class="org.apache.activemq.pool.XaPooledConnectionFactory"
		p:maxConnections="1" 
		p:connectionFactory-ref="amqXAConnectionFactory"
		p:transactionManager-ref="jtaTransactionManager" />

	<bean id="amqXAConnectionFactory"
class="org.apache.activemq.ActiveMQXAConnectionFactory"
	
p:brokerURL="failover://(tcp://localhost:61616)?jms.prefetchPolicy.all=1&amp;timeout=5000"
		p:clientID="test"/>

</beans>





--
View this message in context: http://activemq.2283324.n4.nabble.com/JTA-with-durable-topic-tp4711549.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Mime
View raw message