On Fri, Feb 4, 2011 at 8:37 PM, rxm0203 <rah_me...@yahoo.com> wrote: > > Hi Claus, > > Thanks for the link. I think I am using similar approach. My first route > "calcQueue" takes incoming message and puts it on a user specific queue > (e.g. activemq:queue:Order.User1, activemq:queue:Order.User2) > >> <route id="calcQueue"> >> <from uri="activemq:queue:WO" /> >> <recipientList id="recipientList1"> >> <method method="calculate" bean="queueCalculator" /> >> </recipientList> >> </route> > > "OrderProcessor" bean in second route "ProcessOrder" processes incoming > messages on user specific queues (e.g. activemq:queue:Order.User1, > activemq:queue:Order.User2) > >> <route id="ProcessOrder" errorHandlerRef="deadLetterErrorHandler"> >> <from uri="activemq:queue:Order.*" /> >> <bean ref="OrderProcessor" method="process" /> >> </route> > > The issue is that when activemq:queue:Order.User1 is in retry mode, Camel > doesn't process any messages from other user specific queues. I have > redelivery delay of 5 minutes and it will increase in future. At present, > Camel doesn't process any message for more than 30 minutes if one queue is > blocking. My requirements are: >
You can use concurrent consumers on the JMS endpoint. http://camel.apache.org/jms <from uri="activemq:queue:Order.*?concurrentConsumers=3" /> > 1) Messages should process in sequential order for each queue. This means > that if activemq:queue:Order.User1 is in retry mode, none of the messages > from activemq:queue:Order.User1 should process until redelivery attempts are > exhausted. > 2) When one queue is blocking in retry mode, Camel should continue to > process messages in other user specific queues (e.g. > activemq:queue:Order.User2, activemq:queue:Order.User3.) > > Do you think if I define one route per user specific queue then I can > achieve above requirements? At present, I have only route defined with wild > char character in it? > Yeah if you have a limited number of queues, then that sometimes is easier. But as shown you can enable concurrency as shown above. To ensure ordering within each user, you can use JMSXGroupID http://camel.apache.org/parallel-processing-and-ordering.html http://activemq.apache.org/message-groups.html > I appreciate you help. > > Rahul > -- > View this message in context: > http://camel.465427.n5.nabble.com/Dead-Letter-Error-Handler-and-non-blocking-mode-tp3361913p3371721.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- 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/