OSB — JMS — обработчик ошибок

У меня возникли проблемы с попыткой поймать ошибку в OSB, когда я помещаю сообщение в очередь, а сервер JMS не работает, у меня есть прокси-служба, вызывающая бизнес-службу, для которой настроен jms. В моей прокси-службе уже включены «Требуется транзакция» и «Та же транзакция для ответа».

Ошибка в журнале администратора:

Пункт назначения недоступен; вложенное исключение: java.net.ConnectException: соединение отклонено: соединение; Нет доступного маршрутизатора к месту назначения

Но исключение не ловит ErrorHandler :(


osb
person Aldo Inácio da Silva    schedule 20.10.2017    source источник


Ответы (3)


Я нашел ошибку, проблема в том, что я использовал Publish вместо Routing, после того, как я изменил, все заработало.

person Aldo Inácio da Silva    schedule 24.10.2017

Да, это правильно, поток публикации похож на пожар и забвение (полностью асинхронный), в то время как Route или ServiceCallout будут фиксироваться на исключении в ErrorHandler

person Debapriya Biswas    schedule 02.06.2018

Опубликовать можно по принципу «запусти и забудь», без ожидания ответа. Это происходит из-за того, что по умолчанию QualityOfService=BestEffort для действия публикации. Вы можете изменить это, используя блок RoutingOptions и установив QualityOfService=ExactlyOnce. После этого OSB будет ожидать выполнения действия, а значит, сможет отловить потенциальные ошибки.

person Arkadiusz Przechodzki    schedule 25.10.2019