Hi

So far I always configured the Camel ActiveMQ component with a Spring
JmsTransactionManager etc and marked my routes explicit as "transacted"
since we must not lose any messages. This kind of configuration can be
found at various places, for example the Camel docs at
http://camel.apache.org/transactional-client.html.

However, we recently ran into a strange test case where we lost messages.
We first suspected it to be an ActiveMQ problem that can arise during a
failover (because that was the test case), but Redhat support tracked it
down to an "interesting" behaviour of Spring JMS that arises due to the
configured JmsTransactionManager.

Therefore I created a simple test case where I removed (as recommended by
Redhat) the whole Spring JmsTransactionManager stuff as well as the
"transacted" flag on the Camel route and the route is still fully
transacted. The transacted flag on the JmsConfiguration of the Camel
ActiveMQ-Component seems to be the only needed piece to achieve this.

Therefore my questions:
1. Does the "transacted" flag on the Camel ActiveMQ component make all
routes with a JMS consumer [from(activemq:...)] automatically transacted?

2. Has the reduced configuration (routes without "transacted" element, no
"transactionManager" reference on Camel ActiveMQ component configuration,
no JmsTransactionManager, no SpringTransactionPolicy) any obvious side
effects we have to check and test?

Thanks a lot
Stephan

Reply via email to