Can anybody please help me out to resolve this issue? Thanks, Sanjay
Sanjay Jain wrote: > > Hi All, > > I tried hard to get the redelivery working when route is transacted. But > so far no luck with redelivery at all. I am using camel-1.5.0 in > servicemix 3.2.2. > > This is how my camel-context.xml looks like: > > <camelContext id="camel" useJmx="false" > xmlns="http://activemq.apache.org/camel/schema/spring"> > <route errorHandlerRef="transactionErrorHandler"> > <route> > <from uri="activemq:topic:StatelessTransactions"/> > <policy ref="required" /> > <bean ref="RouteBuilder" method="throwRetryException" /> > </route> > </camelContext> > > <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> > <property name="connectionFactory" > ref="jmsConnectionFactory"> > </property> > <!-- define the jms consumer/producer as transacted --> > <property name="transacted" value="true"/> > <property name="transactionManager" > ref="jmsTransactionManager"/> > </bean> > > <bean id="activemq" > class="org.apache.activemq.camel.component.ActiveMQComponent"> > <property name="brokerURL" value="vm://localhost?create=false" > /> > </bean> > > <bean id="RouteBuilder" class="com.RouteBuilder"/> > > <bean id="jmsTransactionManager" > class="org.springframework.jms.connection.JmsTransactionManager"> > <property name="connectionFactory" ref="jmsConnectionFactory" > /> > </bean> > > <bean id="jmsConnectionFactory" > class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL" > value="vm://localhost?broker.persistent=false&broker.useJmx=false"/> > <property name="redeliveryPolicy" ref="redeliveryPolicy" /> > </bean> > > <bean id="required" > class="org.apache.camel.spring.spi.SpringTransactionPolicy"> > <property name="transactionManager" > ref="jmsTransactionManager"/> > </bean> > > <bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy"> > <property name="maximumRedeliveries" value="-1"/> > </bean> > > <bean id="PROPAGATION_NOT_SUPPORTED" > class="org.springframework.transaction.support.TransactionTemplate"> > <property name="transactionManager" > ref="jmsTransactionManager" /> > <property name="propagationBehaviorName" > value="PROPAGATION_NOT_SUPPORTED" /> > </bean> > > <bean id="PROPAGATION_REQUIRES_NEW" > class="org.springframework.transaction.support.TransactionTemplate"> > <property name="transactionManager" > ref="jmsTransactionManager" /> > <property name="propagationBehaviorName" > value="PROPAGATION_REQUIRES_NEW" /> > </bean> > > <bean id="transactionErrorHandler" > class="org.apache.camel.spring.spi.TransactionErrorHandlerBuilder"> > <property name="transactionTemplate" > ref="PROPAGATION_REQUIRED"/> > </bean> > > Class RouteBuilder{ > public void throwRetryException() throws Exception{ > throw new Exception(); > } > }; > > No matter whatever I do, I never seen camel to trigger the redelivery of > messages. > > I also came across this wiki page : > http://camel.apache.org/transactional-client.html and here it says: > > Configuration of Redelivery > > The redelivery in transacted mode is not handled by Camel but by the > backing system (the transaction manager). In such cases you should resort > to the backing system how to configure the redelivery. > > As far as I understand, the backing system in my configuration is ActiveMQ > TransactionManager which I set correctly. If I am wrong please someone > correct me here and also give me explanation about backing system. > > Could anyone please tell me what I am missing here? > > I struggled a lot but never get this working. I am dying to see this > working as soon as I can. > > Looking forward to see your expert comments. > > Thanks in advance, > Sanjay > > > > > -- View this message in context: http://www.nabble.com/Redelivery-of-messages-in-transactional-mode-tp23389382p23424301.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.