Apache Camel область действия сообщения - PullRequest
0 голосов
/ 08 марта 2012

Я написал компонент (EHComponent) для обработки ошибок для других компонентов (AComponent).

AComponent читает из очереди, обнаруживает ошибку, и, если выдается исключение, сообщение получает несколько заголовков о наборе ошибок, и вызывается .to ("error.queue") для помещения сообщения.в другой очереди для чтения из EHComponent.

EHComponent проверяет заголовки сообщений, относящиеся к типу ошибки, действует соответственно, устанавливая некоторые дополнительные заголовки сообщений (считая, сколько раз это сообщение попадало в очередь ошибок))

EHComponent устанавливает это значение, а затем вызывает .to ("Original.Queue"), из которого AComponent читает из.

Проблема не устранена, поэтому выдается новое исключение, так что это же сообщение снова проходит через процесс.

Проблема, с которой я столкнулся, заключается в том, что во второй раз, хотя я думаю, что это одно и то же сообщение, те заголовки, которые я установил, отсутствуют.

У меня сложилось впечатление, что заголовки сообщенийв Camel несколько стабильны, так что, хотя я нахожусь в новом обмене, заголовок сообщения останется без изменений.Что мне нужно сделать, чтобы обеспечить доступность заголовка сообщения из любого компонента в любой части маршрута?

Спасибо

1 Ответ

0 голосов
/ 09 марта 2012

Заголовки являются частью сообщения, и поэтому они сохраняют заголовки.Поэтому, когда вы отправляете сообщения через очереди, используя ваш компонент, убедитесь, что вы сохранили заголовки.

Однако если вы храните свойства на Exchange, они сохраняются в течение всего срока службы Exchange.

...