camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <>
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 <> 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.

<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

> I appreciate you help.
> Rahul
> --
> View this message in context:
> Sent from the Camel - Users mailing list archive at

Claus Ibsen
Twitter: davsclaus
Author of Camel in Action:

View raw message