I have routes that read from JMS queue and write to another queue and do some processing in between. Queues are in external ActiveMQ server.
I am confused about how error handling and configuring for example retries is configured. - my route is marked <transacted/> and because of that, it uses TransactionErrorHandler - http://camel.apache.org/transactional-client.html states that "Configuration of Redelivery: 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.". This I understand means that I configure "when exceptions happen, delivery is tried 10 times before moving message to dead letter queue" stuff to ActiveMQ, not Camel. - http://camel.apache.org/transactionerrorhandler.html states that "As the TransactionErrorHandler also supports to let Camel do redeliveries you can use both worlds. Letting Camel do some redeliveries and at the end the backing transaction manager doing other redeliveries. In fact in the end the transaction manager have the final word. That means if Camel cannot process the exchange then its thrown back to the transaction manager that will perform the rollback, and redelivery.". This I understand means means TransactionErrorHandler does it's own redeliveries before ActiveMQ tries delivery? What if I configure 10 retries to both ActiveMQ and TransactionalErrorHandler, is message processing retries 10*10 = 100 times if it throws an exception? Is that how it works?