У меня есть процессор в верблюде, который отправляет сообщение конечной точке верблюда (apache camel).
У меня есть конечная точка в верблюжьем XML-файле:
<endpoint id="sendQueue" uri="FBActiveMQ:queue:SEND_Q" />
Я удалил очередь sendQueue из администратора очередей (используя IBM MQ) и попытался отправить сообщение от процессора в эту очередь, перехватить исключение и обработать его в самом процессоре.
Дело в том, что я никогда не получаю исключения, когда сообщение отправляется в удаленную очередь.
Мне известно, что у меня может быть обработчик исключений в самом файле верблюда, но я не могу этого сделать, потому что мой процессор выполняет транзакцию внутри границы транзакции и нуждается в откате в случае сбоя очереди.
У вас есть какие-нибудь подсказки, пожалуйста?
Код, который написан так (не точный код).
try{
JmsProducer jmsProducer = new JmsProducer(endPoint);
jmsProducer.start();
Exchange exchange = endPoint.createExchange(ExchangePattern.InOnly);
exchange.getIn().setBody(msg);
jmsProducer.process(exchange);
} catch(Exception e){
e.printStackTrace();
}