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.

Reply via email to