On Sun, Dec 6, 2009 at 11:25 PM, trivedi kumar b <[email protected]> wrote: > > Hi, > > If I use doTry.. doCatch, with similar route that includes transactions, > will that work as expected? I mean, markRollbackOnly() option inside > doCatch() will rollback the transaction? Pls let me know the behaviour. >
Yes markRollbackOnly() is only for transactions and will issue a status.setRollbackOnly() on the Spring Transaction underneath. That should render the transaction outcome as rollback only. It will not tamper with the Exchange by setting an exception as rollback() does by setting a RollbackException on the Exchange. > Thanks, > Trivedi > > > Claus Ibsen-2 wrote: >> >> On Thu, Dec 3, 2009 at 10:45 AM, kyt <[email protected]> wrote: >>> >>> Hi, >>> >>> I need some advice on how to handle an exception in a sub-route and how >>> the >>> calling route can continue processing. It is easier to explain this with >>> a >>> bit of code: >>> >>> from("direct:A") >>> .to("direct:B") >>> .to("direct:C"); >>> >>> from("direct:B") >>> .onException(Exception.class).handled(true).end() >>> . code that throws an exception >>> >>> from("direct:C") >>> ... >>> >>> Now, if there is an exception in direct:B, direct:C never gets called. >>> Through debugging I found out that the pipeline in direct:A stops >>> processing >>> because it checks an exchange property (Exchange.ERRORHANDLER_HANDLED). >>> I'm >>> using Camel 2.0. Is there a way that the processing in direct:A continues >>> after the exception was handled in direct:B? >>> >> >> Unfortunately the logic for error handling got a bit complex. >> Something to improve in 2.2. I am currently making the TX based >> simpler in internal logic. >> >> Back to your use case. >> The doTry .. doCatch will work as regular try .. catch and thus what >> you would expect so route A will continue >> >> In terms on onException we should improve this over time, adding some >> flag to indicate what you want. As some want to use onException to >> catch that error and create a custom error messages as reply and thus >> not process and further. And others as you want a kinda try .. catch >> logic and just ignore the damn exception. >> >> >>> Thanks, >>> Jens >>> -- >>> View this message in context: >>> http://old.nabble.com/handled-exception-in-sub-route-tp26623326p26623326.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > -- > View this message in context: > http://old.nabble.com/handled-exception-in-sub-route-tp26623326p26669550.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
