Thanks Claus Ibsen:

If we just consider this example, move policy before doTry could resolve it; 
but If we  consider another situation:
        <doTry>
                ..some other operation ..
                <policy ref="...>
                        transaction operations
                </policy>
                <docatch>
                </docatch>
        </dotry>

At this time, I cannot move policy to <doTry/> easily; and also, if transaction 
operations  raise exception, the doCatch cannot catch it;


Claus Ibsen wrote:
>Move the <policy> before the <doTry>


>On Thu, Apr 22, 2010 at 9:08 AM, ext2 <x...@tongtech.com> wrote:
>
> Hi:
>
> The camel's transaction required the transacted-error-handler, but try-catch
> required no-error-handler. They will conflict; following is a sample that
> the try-catch cannot works while using transaction. but I am not sure if
> this is bug or just a camel's limit?
>
> For example, the following route :
>
> <doTry>
>        <policy ref="PROPAGATION_REQUIRED">
>        <pipeline>
>     <to uri="ibatis:table.add?statementType=Insert"/>
>     <bean ref="errorbean" method="raiseError"/>
>     </pipeline>
>     </policy>
> <doCatch>
> <exception>java.lang.Exception</exception>
> <bean ref="mybean" method="foo"/>
> </doCatch>
>
> As for normal understanding: the errorbean(just after ibatis) raise error,
> so the pipeline will marked as rollback status, but the exception is still
> exist, and the catch clause will be execute.And in camel, doCatch cannot be
> execute;
>
>
>



-- 
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


Reply via email to