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


Reply via email to