camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Dead Letter Error Handler and non blocking mode
Date Sat, 05 Feb 2011 12:49:12 GMT
On Fri, Feb 4, 2011 at 8:37 PM, rxm0203 <rah_mehta@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: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message