Transaction spanning multiple routes separated by seda queue

2014-01-16 Thread gilboy
Hi

I have a route to consume a message from a JMS Topic, do some processing on
it and then place on a SEDA Queue. 

My second route will consume the message from the SEDA queue and place on a
different JMS Topic. 

I want to ensure that the message only gets de-queued from the first Topic
which it has successfully been placed on the 2nd topic. Is this possible?

Thanks in advance
Joe



--
View this message in context: 
http://camel.465427.n5.nabble.com/Transaction-spanning-multiple-routes-separated-by-seda-queue-tp5746041.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Transaction spanning multiple routes separated by seda queue

2014-01-16 Thread David Karlsen
AFAIK this is not supported, because transactions are threadbound and the
SEDA stuff will run of another thread than the one that started the
transaction, and hence not able to participate in it.


2014/1/16 gilboy josephoto...@gmail.com

 Hi

 I have a route to consume a message from a JMS Topic, do some processing on
 it and then place on a SEDA Queue.

 My second route will consume the message from the SEDA queue and place on a
 different JMS Topic.

 I want to ensure that the message only gets de-queued from the first Topic
 which it has successfully been placed on the 2nd topic. Is this possible?

 Thanks in advance
 Joe



 --
 View this message in context:
 http://camel.465427.n5.nabble.com/Transaction-spanning-multiple-routes-separated-by-seda-queue-tp5746041.html
 Sent from the Camel - Users mailing list archive at Nabble.com.




-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen


Re: Transaction spanning multiple routes separated by seda queue

2014-01-16 Thread Claus Ibsen
On Thu, Jan 16, 2014 at 10:57 AM, gilboy josephoto...@gmail.com wrote:
 Hi

 I have a route to consume a message from a JMS Topic, do some processing on
 it and then place on a SEDA Queue.

 My second route will consume the message from the SEDA queue and place on a
 different JMS Topic.

 I want to ensure that the message only gets de-queued from the first Topic
 which it has successfully been placed on the 2nd topic. Is this possible?


Well almost. If you use transacted jms, then the consumer on the jms
topic will not ack the msg until Camel has routed the message and
there was no error.

So when you send to the seda queue, then if you do request/reply then
it will block here waiting for the 2nd route to complete. And if that
completes without any exception, then it continue and the 1st consumer
can ack the message.

But if you involve other resources such as JDBC and want to use XA
then you would need that work to happen on the same thread (very often
that is).

If you have Camel in Action book, read chapter 9, and see section 9.3
about local vs global tx's.


 Thanks in advance
 Joe



 --
 View this message in context: 
 http://camel.465427.n5.nabble.com/Transaction-spanning-multiple-routes-separated-by-seda-queue-tp5746041.html
 Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io