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

Reply via email to