Hi all ,
I am using camel 1.6 as router in my messge flow and i have transaction
defined as below.
If I use my jmscomponent as trnsaction, could i still use onEXception()
clause to retry locally before retry bt the transaction manager
From my observation if I add policy to my route , it ignores my
onException() clause
from("jmstx:queue:spq2").policy(required)
.bean(myBean,"setLocationUrI")
And if I take policy out from the route seems like exception block is in
effect.
If I do not use policy to the route is it staill transactional?
<bean id="jmstx" class="org.apache.camel.component.jms.JmsComponent">
<property name="configuration" ref="jmsConfig" />
</bean>
<bean id="jmsConfig"
class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="jmsConnectionFactory"/>
<!-- <property name="concurrentConsumers" value="5" />-->
<property name="transactionManager" ref="jmsTransactionManager"/>
<property name="transacted" value="true"/>
</bean>
<bean id="PROPAGATION_REQUIRED"
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
<property name="transactionManager" ref="jmsTransactionManager"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
</bean>
<!-- the transactional error handler
<bean id="errorHandler"
class="org.apache.camel.spring.spi.TransactionErrorHandlerBuilder">
<property name="springTransactionPolicy" ref="PROPAGATION_REQUIRED"/>
</bean>
-->
<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="1"/>
</bean>
<!--
<bean id="jmsConnectionFactory"
class="org.jencks.amqpool.XaPooledConnectionFactory">
<constructor-arg index="0" type="java.lang.String"
value="tcp://localhost:61616" />
<property name="maxConnections" value="10" />
</bean>
-->
<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="tcp://localhost:61616"/>
</bean>
-->
<bean id="routerBean" class="com.pf.camelconsumer.MyRouterBuilder">
</bean>
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring" trace="true">
<routeBuilderRef ref="routerBean"/>
</camelContext>
</beans>
Another related to camel transaction is, when I am undeploying my service
assembly, I am getting the following exception. Not sure what is the cause
of this.
2010-04-28 14:13:46,570 | 14:13:46,570 | ERROR | //127.0.0.1:1802 | Service
| ivemq.broker.TransportConnection 290 | Async error occurred:
javax.jms.JMSException: Transaction
'TX:ID:LPF004689-1801-1272475381000-0:0:2' has not been started.
javax.jms.JMSException: Transaction
'TX:ID:LPF004689-1801-1272475381000-0:0:2' has not been started.
at
org.apache.activemq.broker.TransactionBroker.getTransaction(TransactionBroker.java:270)
at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:190)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
at
org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:619)
Please suggest
--
View this message in context:
http://old.nabble.com/exception-handling-in-camel-transactional-route-tp28392323p28392323.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.