You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Yan <yz...@medplus.com> on 2011/08/10 21:09:37 UTC

start and commit transaction before ProducerTemplate send message

Hi there, 

I am using Camel 2.1.0, processing message from one ActiveMQ JMS queue. For
every message I process (whether succeed or fail), I send a status message
to a 2nd ActiveMQ queue. If processing fails, exception is thrown, message
rolls back to the original queue and we retry. I am using "transacted=true"
on all JMS endpoints, so that when I restart my Camel application, the
retried message survive restart and continue processing.

The problem is that when I throw exception (transaction not committed), the
status message is not written to the 2nd queue. A message is being retried
over and over, but status messages accumulate, they do not show up in status
message queue until the final successful retry (when transaction commits).

What I want is that when message rolls back because we throw exception, the
status still commits to the 2nd ActiveMQ queue right away. This is when
REQUIRES_NEW transaction comes in. However, I cannot figure out how to do
that. 

My processor logic using this to send status to ActiveMQ queue.  This is in
my process() logic for the 1st queue. 

		ProducerTemplate producerTemplate =
MyCamelContext.createProducerTemplate();
    		producerTemplate.sendBodyAndHeader("StatusQueue", message, header,
value);

I wanted to start a transaction before this and commits transaction
afterwards, how do I do that?

I am seeing examples like the following, but it does not help me, because I
only want to start a new txn if an exception is going to be thrown, and
commits that transaction right before I throw exception.

from(...).transacted("PROPAGATION_REQUIRES_NEW").to(...)


--
View this message in context: http://camel.465427.n5.nabble.com/start-and-commit-transaction-before-ProducerTemplate-send-message-tp4686899p4686899.html
Sent from the Camel - Users mailing list archive at Nabble.com.