Верблюд: влияние на выполнение маршрута, когда соединение с внешним клиентом неожиданно закрывается

Мы предоставляем веб-службу camel-cxf на основе SOAP/HTTP, где при получении запроса от «Клиента-A» начинается выполнение маршрута, которое включает вызов одной или нескольких внешних веб-служб, скажем, «Сервер1», «Сервер2» и «Сервер3». ' в последовательном порядке. В этом случае нам нужно понять, что происходит с выполнением маршрута, когда исходное TCP-соединение с «Клиентом-А» неожиданно закрывается.

Будет ли маршрут выполнен успешно и будет ли зарегистрирована ошибка при попытке отправить окончательный ответ?

Или выполнение маршрута будет остановлено сразу после закрытия TCP-соединения?


person Sanvijaya    schedule 06.03.2015    source источник


Ответы (1)


Вы можете зафиксировать любые ошибки во время выполнения маршрута с помощью механизма обработки ошибок верблюда, а затем определить политику в отношении того, как вы хотите обрабатывать исключение, например, вы можете настроить правила, которые определяют, сколько раз повторять попытку повторной доставки и задержку между попытками, и так далее. Для получения дополнительной информации вы можете перейти по этой ссылке: http://camel.apache.org/redeliverypolicy.html

person hoomanb    schedule 10.03.2015
comment
Спасибо за ваш ответ, но позвольте мне объяснить вопрос немного лучше. скажем, верблюд действует как механизм оркестровки, «КлиентА» отправляет запрос верблюду, а верблюд начинает вызывать «СерверБ», «СерверС» и «СерверD» один за другим, теперь, когда выполняется выполнение маршрута, скажем, соединение с « ClientA закрыт, что теперь происходит с выполнением маршрута? - person Sanvijaya; 11.03.2015
comment
Маршрут продолжает выполнять операцию до ее завершения, однако в журналах вы можете увидеть IOException, указывающий на то, что клиент ушел. - person hoomanb; 01.07.2015