Hi, Are there any working examples with a Camel transacted route and ActiveMQ endpoints? There are a lot of parameters to toggle, and my test is not quite working.
Essentially I have a route like this: SpringTransactionPolicy transactionalPolicy = new SpringTransactionPolicy(transactionManager); transactionalPolicy.setPropagationBehaviorName("PROPAGATION_REQUIRED"); from("activemq:SourceQueue") .errorHandler(transactionErrorHandler(transactionPolicy)) .transacted().policy(transactionPolicy) .inOut(myProcessor) .inOnly("activemq:TargetQueue"); I have also configured the broker with an individual dead letter strategy: <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true" processExpired="true" processNonPersistent="false"/> If something fails in the route (ie. in myProcessor or producing to target queue) I wish to have the message placed on the "DLQ.SourceQueue". A test I created triggers a "ResourceAllocationException: Usage Manager Store is Full" when producing to the target, as the broker is configured with a low (enough) store usage. However, after the rollback the message is neither on SourceQueue, TargetQueue, DLQ.SourceQueue nor DLQ.TargetQueue. I actually would expect the message to still be on the SourceQueue, as there is no store space to move the message to either of the other queues. Is this as expected? I need to know how to prevent message loss in all cases... BR, Thomas