Цикл исключения Apache Camel JMS - PullRequest
       21

Цикл исключения Apache Camel JMS

0 голосов
/ 19 декабря 2018
camelVersion = "2.19.1"
springVersion = "4.1.5.RELEASE"
jdk = "1.8"

Работал с Apache Camel JMS, транзакциями XA (atomikos) и Java / Spring.Добавлен некоторый код для обработки исключений, которые могут возникнуть во время верблюжьей маршрутизации и обработки бизнес-логики, то есть с использованием onException.Ниже приведен фактический код, прежде чем мы столкнулись с проблемой, когда после возникновения исключения код onException обрабатывал его, как повторное выполнение согласно указанному числу;отправил элемент управления обработчику ошибок, а затем продолжал повторять и обрабатывать одно и то же сообщение снова и снова и выполнять одни и те же действия при возникновении исключения и повторных попытках.

onException(Exception.class)
.log("Exception caught")
.redeliveryDelay(redliveryDelay) //delay time
.setHeader("exception", simple("${exception}"))
.maximumRedeliveries(redelivery) //number of retries                
.process("errorHandler");

1 Ответ

0 голосов
/ 19 декабря 2018

после некоторых исследований;Концепции inOnly и inOut помогают найти следующее решение для получения сообщения очереди в первый раз, т. е. если произошла исключительная ситуация, а также повторные попытки.

onException(Exception.class)
.log("Exception caught")
.redeliveryDelay(redliveryDelay)
.setHeader("exception", simple("${exception}"))
.maximumRedeliveries(redelivery)                    
.process("errorHandler")
.handled(true)
.inOnly();
...