camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Raul Kripalani <>
Subject Re: Incoming message from a JMS queue need to be processed in parallel but keep the ordering of messages
Date Sat, 13 Jul 2013 17:18:11 GMT
Use the concurrentConsumers option in the JMS consumer to start multiple
receiving threads.

Make sure to use the transacted mode to leverage broker-side redeliveries.

Like Claus said above, use JMS Message Groups to serialize the processing
of messages that share a key. If your producer cannot place the required
JMSXGroupId header, create an intermediate route in Camel that (1) picks up
the raw messages, (2) calculates the "bucketing key" based on payload data,
(3) sets the JMSXGroupId header and (4) publishes the resulting message
onto a different JMS queue, where a different Camel route is listening.

Seda will preserve the transaction as long as it's not an XA transaction.
If your JMS messages are InOnly (no JMSReplyTo header, or replyTo option in
the JMS consumer), set the waitForTaskToComplete option to Always on the
producer. Otherwise, your JMS message will be ACK'ed to the broker before
the JavaSpaces publishing takes place and exceptions will not cause a

Hope this helps,

*Raúl Kripalani*
Apache Camel PMC Member & Committer | Enterprise Architect, Open Source
Integration specialist | | twitter: @raulvk

On Fri, Jul 12, 2013 at 7:10 PM, salemi <> wrote:

> Yep, I was thinking about this approach as well.
> Using Seda is the transnational integrity preserved?
> Let say the delivery of one message using seda fails, does camel recognize
> it and redeliver it?
> -----
> Alireza Salemi
> --
> View this message in context:
> Sent from the Camel - Users mailing list archive at

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message