Hi If you use transacted JMS then its the broker which handles redeliveries and error handling and such. So check the broker documentation.
For AMQ its such pages as http://activemq.apache.org/message-redelivery-and-dlq-handling.html http://activemq.apache.org/redelivery-policy.html Check the AMQ in Action book. Also the Camel in Action chapter 9 covers all about transactions with Camel. On Sun, Jan 9, 2011 at 2:42 PM, Marcin Cylke <mcl.ca...@touk.pl> wrote: > Hi > > I've encountered a scenerio I'm unable to implement using Apache Camel. > I want to have a component that polls messages from JMS queue and processes > them in some way. The problem is, there may be some problems, errors, > exceptions, > and the processing fails. That's why I need to leave the message in the > queue, so > the broker can retry it in some later time. > > I've used servicemix-jms, since I'm deploying the thing on Servicemix (3.3), > to > achieve this. My config looks like this: > > #v+ > <jms:endpoint service="ts:WorkflowConsumerService" > endpoint="default" > targetService="ts:WorkflowConsumerCamelService" > targetEndpoint="default" > role="consumer" > processorName="jca" > connectionFactory="#connectionFactory" > resourceAdapter="#ra" > activationSpec="#activationSpec" > bootstrapContext="#bootstrapContext" > synchronous="true" > rollbackOnError="true" > wsdlResource="classpath:LeadManagement.wsdl" > defaultMep="http://www.w3.org/2004/08/wsdl/in-only"/> > > <bean name="connectionFactory" > class="org.springframework.jndi.JndiObjectFactoryBean"> > <property name="jndiName"> > <value>activemq/connectionFactory</value> > </property> > </bean> > > <bean name="ra" class="org.springframework.jndi.JndiObjectFactoryBean"> > <property name="jndiName"> > <value>activemq/resourceAdapter</value> > </property> > </bean> > > <bean id="activationSpec" > class="org.apache.activemq.ra.ActiveMQActivationSpec"> > <property name="destination" value="example/C"/> > <property name="destinationType" value="javax.jms.Queue"/> > <property name="maximumRedeliveries" value="10"/> > <property name="initialRedeliveryDelay" value="10000"/> > </bean> > > <jee:jndi-lookup id="bootstrapContext" > jndi-name="java:comp/env/smx/BootstrapContext"> > </jee:jndi-lookup> > #v- > > As you can see, I'm using activationSpec to configure redeliveries. I'd like > to know if this > is possible to achieve using pure camel config? To this moment I've only > achieved retrying when > the processing fails - I simply set connection to the broker as transacted. > But I don't > know how to force the time between redeliveries and other things. > > Regards > Marcin > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/