Hello Camel Riders, I have used Camel-Quickfixj component in our application to consume and publish fix messages. Our application consumes FIX 4.2 messages from VM queue with 10 concurrent consumers. Each consumer takes the FIX message of the VM queue, transforms the message to our internal FIX message structure and publishes on to another FIX session. Please see routebuilder definition below. I can tell in our logs that FIX messages are consumed in order. I also verified that transformation bean class have processed FIX messages in order and sent it to the pipeline for QuickFixJ publishing in order as well. However, after the transformation bean class, publishing of new transformed FIX messages are out of order (I could tell by looking at Quickfix/J message store that fix messages are sent in different order. Please note this is not FIX sequence number issue.).
I understand obvious solution is make multiple consumer of VM to single consumer but this could seriously effects the speed of publishing fix messages. To be honest, I am little unclear how this route works when it is parallel processing, i.e if 10 concurrent consumers of VM, does that mean 10 threads transforming messages and invoking quickfixj's session.send() at same time. Could you please advise how I can ensure ordering is preserved between transformation and publishing of Quickfix/J when it is parallel processing? Routbuilder setup example in our application from(vm:FixQueue?concurrentConsumers=10) .to(bean:transformerBean?method="transformFixMessage") .to(quickfix:config/session.cfg?sessionID=FIX.4.2:Test->Destination) Kind regards, -Vid- -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Quickfixj-2-9-3-Ordering-issue-tp5726595.html Sent from the Camel - Users mailing list archive at Nabble.com.