As far as I know the transactional client aproach is the only good way
to guarantee that no message is lost.
You can take a look at these pages:
http://camel.apache.org/jms.html section: Enabling Transacted Consumption
http://camel.apache.org/transactional-client.html section: Camel 2.0 -
JMS Sample
This thread could also help:
http://old.nabble.com/Problem-with-SOAP-JMS-and-transactions-to26162087.html
As soon as you start using transactions you also will have to care about
rollbacks and redeliveries like described in the thread.
Greetings
Christian
boday schrieb:
I'm using Camel2 in SMX 3.3.1. I have a simple Camel route as follows...
from("activemq:inboundMessages?maxConcurrentConsumers=50")
.process(new Processor1())
.process(new Processor2())
.to("activemq:finishedQueue");
How do I guarentee that a message will not be removed from the
"inboundMessages" queue until it reaches the "finishedQueue"? I need to
make sure that messages are not lost in the event of a server crash/restart,
etc. Currently, this process is loosing messages if I restart the server
midway through a load test.
Do I have to use a transactional client approach (if so, how exactly)? I
tried this briefly but haven't been able to get it to work. Is there
another option like using the JMS acknowledgement mode or something?
thanks
-----
Ben - Senior Consultant