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.

Reply via email to