Well...
I tried to find where the camel stops to compute the route and I found this
code in RedeliveryErrorHandler.java:
// compute if we are exhausted, and whether redelivery is
boolean exhausted = isExhausted(exchange, data);
boolean redeliverAllowed = isRedeliveryAllowed(data);
// if we are exhausted or redelivery is not allowed, then deliver to failure
processor (eg such as DLC)
if (!redeliverAllowed || exhausted) {
After that Camel stops my route.
So, I tried to do my bean execute before the route was marked to
ROLLBACK_ONLY.
Using pipeline inside the onException I could do that:
...
.onCompletion()
.bean(this.logCompletionRoute)
.end()
.onException(Exception.class)
.handled(true)
*.pipeline()
.log(LoggingLevel.ERROR, this.log, "Error on processing
message. Sending Rollback command!")
.log(LoggingLevel.ERROR, this.log,
"${exception.stacktrace}")
.bean(this.logCompletionRoute)
.end()*
.rollback()
.end()
...
Is there some more elegant solution?
Thanks
André Souza
--
View this message in context:
http://camel.465427.n5.nabble.com/OnCompletion-and-rollbacked-transaction-tp5753080p5753088.html
Sent from the Camel - Users mailing list archive at Nabble.com.