On Fri, Mar 6, 2009 at 1:51 PM, Henric Hedin <hhe...@gmail.com> wrote:
> Hi,
>
> Is it possible to in some way to use the TransactionErrorHandler and at the
> same time catch and handle exceptions?
>
> I have read the documentation under
> http://camel.apache.org/error-handling-in-camel.html that for transactional
> exchanges the Error Handler does not kick, so the following code in my Route
> configure will not work:
>
>
> errorHandler(bean(TransactionErrorHandlerBuilder.class,
> "transactionErrorHandler"));
>
> onException(SAXParseException.class).
> handled(true).
> policy(notsupported).
> maximumRedeliveries(1).
> transform().constant("Sorry, parse exception...").
> to("jms:queue:validationFailed.SAXParseException");
>
>
> from("jms:queue:input-queue?transacted=true").
> unmarshal(jaxbDataFormat).
> to("jms:queue:output-queue").
>
>
> What I'm trying to accomplish is if a parsing exception occurs, I would like
> my incoming message to be rolled back and put on the jms deadletter queue
> (configured for the queue on the JMS provider, when the JMSXDeliveryCount
> has reached it's threshold). But I would also be able to send an information
> jms-message to the same jms-provider with information about why the message
> has been backed out (of course outside the "incoming transaction").
>
> Maybe a strange solution, but is it possible to handle in Camel? :)
> /Henric
>
No the DeadLetterChannel is disabled for transacted exchanges. There
is a trick though, if you dont add the Spring Policy then it will
default to REQUIRED and still use DLC.

We are considering how we can provide options for end users in the
future so you can use DLC for somerthing combined with transacted
exchanges.

The problem with transacted exchanges is that they are redelivered in
a totally new thread so Camel has no wait of correlating a previous
attempt, we can only rely on the few JMS options you get such as the
JMSX counter. But we dont know when we have reached exhausted, to send
the extra JMS message

But any feedback and ideas is welcome what we can do in the future to
bring more value to error handling with TX




-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/

Reply via email to