Hi All,
I have a question about how to configure time out for camel route
transaction. I am using servicemix 4.4.1 and Camel 2.8.0. I am trying to set
a time out to the transactions used by my camel routes so if any step in
route take too long time, the transaction can roll back and message could be
requeued. I tried to search for a similar use case but failed finding a
clear example. I tried setting a timeout in transaction template and setting
a transactionTimeout in jmsComponent, but it didn't work as I expected. It
would be great that someone can help me take a look if I did anything wrong.
I have my beans.xml file configured as the following:
<bean id="mkt-jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="transacted" value="true"/>
<property name="transactionManager" ref="txManager"/>
<property name="connectionFactory" ref="jmsConnectionFactory"/>
<property name="transactionTimeout" value="20"/>
</bean>
<bean id="txTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="timeout" value="20"/>
<property name="transactionManager" ref="txManager"/>
</bean>
<bean id="txManager"
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://mkt-mq"/>
</bean>
<bean id="propagationRequiredPolicy"
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
<property name="transactionManager" ref="txManager"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
<property name="transactionTemplate" ref="txTemplate"/>
</bean>
I wrote my route as the following, I let the thread sleep for 60 secs in the
sleep function, and was hopping a time out could occurred:
from("mkt-jms:queue:Mkt.Queue." + getQueueName() + ".Standard")
.transacted("propagationRequiredPolicy")
.process(messageProcessor)
.dynamicRouter(bean(DynamicRouterFileTransfer.class, "sleep"))
.to("cxf:bean:" + getService())
);
Thanks a lot.
Tina
--
View this message in context:
http://servicemix.396122.n5.nabble.com/configure-transaction-timeout-in-camel-route-tp5714286.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.