I had to use cacheLevelName=CACHE_CONSUMER
On Mon, Jul 9, 2012 at 11:58 AM, Thomas Johansen <thxm...@gmail.com> wrote: > 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