Hi,

It's good to know that both Camel & AMQ redelivery can be used.

Currently, i'm trying to have AMQ do the redelivery but i have a strange
behaviour : the redelivery delay is not taken into account. here is my
Camel/JMS config :

<bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
</bean>
        
<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
        <property name="maximumRedeliveries" value="2" />
        <property name="initialRedeliveryDelay" value="5000" />
        <property name="redeliveryDelay" value="5000" />
</bean>

<bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
        <property name="maxConnections" value="10" />
        <property name="maximumActive" value="10" />
        <property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>

<bean id="jmsTxManager"
class="org.springframework.jms.connection.JmsTransactionManager">
        <property name="connectionFactory" ref="pooledConnectionFactory" />
</bean>
        
<bean id="PROPAGATION_REQUIRED"
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
        <property name="transactionManager" ref="jmsTxManager"/>
        <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
</bean>

<bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
        <property name="connectionFactory" ref="pooledConnectionFactory" />
        <property name="transacted" value="true" />
        <property name="transactionManager" ref="jmsTxManager" />
</bean>

I modified my routes to have a NoErrorHandler :

<errorHandler id="noErrorHandler" type="NoErrorHandler" />

<route id="routeA" errorHandlerRef="noErrorHandler">
   <from uri="activemq:queue:traiterReponse" />
   <transacted />
   <bean ref="processor1" />
   <to uri="direct:traiterReponse" />
</route>

<route id="routeB" errorHandlerRef="noErrorHandler">
   <from uri="direct:traiterReponse" />
   <bean ref="processor2" />
   <to uri="log:output" />
</route>

With this config, i have 2 redeliveries but there is not a 5 seconds delay
beetween the initial attempt and the 2 redeliveries (it seems that AMQ
redelivers immediatly the message).

Am i missing something ?


--
View this message in context: 
http://camel.465427.n5.nabble.com/Redelivery-with-multiple-transacted-routes-tp5158209p5159871.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to