Hi
On Wed, Apr 28, 2010 at 8:21 PM, gnanda <[email protected]> wrote: > > 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 No this is not possible in Camel 1.x. You need Camel 2.x for that. > 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. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
