Hi

Apologies but I'm a little confused after reading up on Camel docs and books
as well as AMQ docs. My confusion might be due to almost zero experience but
thought I'd ask hopefully some simple questions before I dive in to
development with routes that consume messages from AMQs.

My understanding is that:

Camel has redelivery policies that can be configured on errorHandler and
onException components. Camel will not retry the whole route but only retry
from the channel before the failed component.

One unhappy path is that if your route fails you could loose your AMQ msg as
it has been consumed. I think the way to solve this is by using the
https://camel.apache.org/manual/latest/transactional-client.html where it
says "The redelivery in transacted mode is not handled by Camel but by the
backing system (the transaction manager). In such cases you should resort to
the backing system how to configure the redelivery."

So I can configure my ActiveMQConnectionFactory with some uri options around
redelivery. 

As I understand it ActiveMQConnectionFactory retries will involve the whole
route being retried.

I think the advice is that if you are using  ActiveMQConnectionFactory
retries you should *not* have retries handled by camel errorHandlers? Is
this correct?

My confusion is about the trade off (if any) between these 2 approaches as
my googling has not found any examples of both AMQ transactional client and
Camel errorHandling being used together.  

I ask also as I wonder if there is Camel errorHandler retry functionality
that is available that might trump ActiveMQConnectionFactory retry
functionality?

Can you separate the concept of transactional client and retries? Ie have
ActiveMQConnectionFactory as a transactional client but have your retries
handled by camel?  This is where my brain starts to get fuzzy.

Cheers for any advice..

n



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply via email to