You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Soelvar <je...@gmail.com> on 2013/10/14 09:35:03 UTC

Transacted processing

Hi all,

I am currently in the progress of setting up camel for processing
transactions. I am thinking to use transacted mode with activemq, as
integrity is very important and understand that a setup similar to the
example http://camel.apache.org/transactional-client.html, is the
recommended approach(please correct me if I am wrong). I can see that camel
provides a dead letter queue exception handler, DeadLetterChannel, but also,
so does activemq. Can anyone provide any pros or cons on either. I am
leaning a bit towards using camels approach, as it is probably better tested
with camel. Also I want to be able to do implicit retry on some services,
before doing exponential back off before moving to dead letter queue. The
implicit retry is easy to configure in camel it seems i am just a bit
doubtfull whether I should use camel or activemq for the dead letter queue
and exponential back off handling.

Cheers,
Soelvar



--
View this message in context: http://camel.465427.n5.nabble.com/Transacted-processing-tp5741498.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Transacted processing

Posted by Soelvar <je...@gmail.com>.
Hi Ceposta,

Thanks for the input - it definitely shifted my position on which dead
letter queue to use.

Cheers,
Jesper



--
View this message in context: http://camel.465427.n5.nabble.com/Transacted-processing-tp5741498p5741572.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Transacted processing

Posted by Christian Posta <ch...@gmail.com>.
They are two different levels of granulartiy.

ActiveMQ redelivery is at the JMS client level. Camel redelivery mechanics
is at the processor level. Same with the DLQ.

Example: you have a route like this:

form("activemq:queue:foo").log("Incoming message: ${body}").to("mock:end")

What this means: your from("activemq:queue:foo") contains the JMS consumer.
ActiveMQ's redelivery will be applied there (will retry entire route).

If you set redelivery and DeadLetterChannel on the camel route, and for
example there was an error delivering to("mock:end") the camel retry
semantics will retry at to("mock:end"), not the entire route. If retries
are exhausted on the camel side, the DLChannel will be run. If redelivery
becomes exhausted at the consumer side, ActiveMQ will send a NACK back to
broker and broker will place into DeadLetterQueue.


On Mon, Oct 14, 2013 at 6:46 AM, Soelvar <je...@gmail.com> wrote:

> Hi Claus,
>
> Thanks for the quick reply...I have read the chapter, which covers
> transactions well as you said. Still I am a bit unsure if there are any
> advantages from using activemq`s retry plugin over camels...it looks like
> camels retry supports roughly the same options. I guess  given that my
> previous attempts to configure amq retry plugin has been cumbersome at
> best,
> I will probably try camels instead, unless there are some limitations that
> I
> am unaware of.
>
> Cheers,
> Jesper
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Transacted-processing-tp5741498p5741533.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>



-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Re: Transacted processing

Posted by Soelvar <je...@gmail.com>.
Hi Claus,

Thanks for the quick reply...I have read the chapter, which covers
transactions well as you said. Still I am a bit unsure if there are any
advantages from using activemq`s retry plugin over camels...it looks like
camels retry supports roughly the same options. I guess  given that my
previous attempts to configure amq retry plugin has been cumbersome at best,
I will probably try camels instead, unless there are some limitations that I
am unaware of.

Cheers,
Jesper



--
View this message in context: http://camel.465427.n5.nabble.com/Transacted-processing-tp5741498p5741533.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Transacted processing

Posted by Claus Ibsen <cl...@gmail.com>.
If you have a copy of Camel in Action book, then chapter 9 is a full
chapter about transactions, that goes deep.



On Mon, Oct 14, 2013 at 9:35 AM, Soelvar <je...@gmail.com> wrote:
> Hi all,
>
> I am currently in the progress of setting up camel for processing
> transactions. I am thinking to use transacted mode with activemq, as
> integrity is very important and understand that a setup similar to the
> example http://camel.apache.org/transactional-client.html, is the
> recommended approach(please correct me if I am wrong). I can see that camel
> provides a dead letter queue exception handler, DeadLetterChannel, but also,
> so does activemq. Can anyone provide any pros or cons on either. I am
> leaning a bit towards using camels approach, as it is probably better tested
> with camel. Also I want to be able to do implicit retry on some services,
> before doing exponential back off before moving to dead letter queue. The
> implicit retry is easy to configure in camel it seems i am just a bit
> doubtfull whether I should use camel or activemq for the dead letter queue
> and exponential back off handling.
>
> Cheers,
> Soelvar
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Transacted-processing-tp5741498.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen