Hi,
So i'm using Camel 2.13.1 and the JDBC Idempotent Repository and I'd like to
use the removeOnFailure
=true option to be able to replay the transaction on failure.
My question is whether implementing an onException clause which handles an
exception would stop the removeOnFailure option from being carried out as
the failure is being marked as 'handled=true'. Here is my onException clause
in Spring XML:-
<camel:onException>
<camel:exception>java.lang.Exception</camel:exception>
<camel:redeliveryPolicy logStackTrace="true"
disableRedelivery="true" logExhausted="true" />
<camel:handled>
<constant>true</constant>
</camel:handled>
<camel:log
message="Transaction has failed and is being handled by the exception
handler. Received message [${exception}], full stack trace
[${exception.stacktrace}]"
loggingLevel="ERROR"
logName="com.lgim.sophis.unrecoverableerror"></camel:log>
</camel:onException>
In the above case would the camel_messageprocessed table entry for the
failing exchange be removed?
Here is my route for idempotency:-
<route id="idempotentTransactionsRoute">
<from uri="direct:filterForIdempotency" />
<idempotentConsumer messageIdRepositoryRef="jdbcIdempotentRepository">
<el>${in.body.ID}</el>
<to ref="direct:processTransaction" />
</idempotentConsumer>
<stop />
</route>
Any help appreciated!
So i'm using Camel 2.13.1 and the JDBC Idempotent Repository and I'd like to
use the removeOnFailure
=true option to be able to replay the transaction on failure.
My question is whether implementing an onException clause which handles an
exception would stop the removeOnFailure option from being carried out as
the failure is being marked as 'handled=true'. Here is my onException clause
in Spring XML:-
<camel:onException>
<camel:exception>java.lang.Exception</camel:exception>
<camel:redeliveryPolicy logStackTrace="true"
disableRedelivery="true" logExhausted="true" />
<camel:handled>
<constant>true</constant>
</camel:handled>
<camel:log
message="Transaction has failed and is being handled by the exception
handler. Received message [${exception}], full stack trace
[${exception.stacktrace}]"
loggingLevel="ERROR"
logName="com.lgim.sophis.unrecoverableerror"></camel:log>
</camel:onException>
In the above case would the camel_messageprocessed table entry for the
failing exchange be removed?
Here is my route for idempotency:-
<route id="idempotentTransactionsRoute">
<from uri="direct:filterForIdempotency" />
<idempotentConsumer messageIdRepositoryRef="jdbcIdempotentRepository">
<el>${in.body.ID}</el>
<to ref="direct:processTransaction" />
</idempotentConsumer>
<stop />
</route>
Any help appreciated!