Seda breaks transaction propagation since different threads are used. But you can replace seda by JMS from("jms:queue:abc") .choice() .when(simple(body.msg.type).isEqualTo("a")) .to("jms:queue:only_a") .when(simple(body.msg.type).isEqualTo("b")) .to("jms:queue:only_b"); from("jms:queue:only_a').to("javaspaces"); from("jms:queue:only_b").to("javaspaces");
// With Message selector and single queue (if your broker supports it) from("jms:queue:abc") .choice() .when(simple(body.msg.type).isEqualTo("a")) .setHeader("MyGroupId",1) .when(simple(body.msg.type).isEqualTo("b")) .setHeader("MyGroupId",2) .end .to("jms:queue:enriched_abc"); from("jms:queue:enriched_abc?selector='MyGroupId=1').to("javaspaces"); from("jms:queue:enriched_abc?selector='MyGroupId=2').to("javaspaces"); // Or with JMSXGroupID (if your broker supports it) from("jms:queue:abc") .choice() .when(simple(body.msg.type).isEqualTo("a")) .setHeader("JMSXGroupID","a") .when(simple(body.msg.type).isEqualTo("b")) .setHeader("JMSXGroupID","b") .end .to("jms:queue:enriched_abc"); // Multiple consumers, each one should process a different group from("jms:queue:enriched_abc?concurrentConsumers=3").to("javaspaces"); -- View this message in context: http://camel.465427.n5.nabble.com/Incoming-message-from-a-JMS-queue-need-to-be-processed-in-parallel-but-keep-the-ordering-of-messages-tp5735406p5735705.html Sent from the Camel - Users mailing list archive at Nabble.com.