Вот мои каналы настройки:Pub-Sub стратегия обработки ошибок
- JDBC сообщения-магазин поддерживается очередь
- моста, соединяющий очередь к пабу подканале
- голосующего сконфигурировано на паб-субканале является транзакционным
Теперь, когда возникает исключение, поднятое в любом из абонентов, транзакция откатывается назад, и сообщение повторяется навсегда. Сообщение снова обрабатывается всеми подписчиками. Если это постоянное исключение, по крайней мере, у абонента, сообщение не обрабатывается ни одним из других абонентов.
Какая стратегия обработки исключительных ситуаций здесь?
Я предпочитаю обработку исключений на подписчике, то есть только неудачный абонент будет повторять попытку, другие подписчики будут обрабатывать сообщение и двигаться дальше.
Как это можно реализовать в весенней интеграции?
Подробнее здесь ..
Если голосующий производятся транзакционной и сообщение не обработки, по меньшей мере, один из абонентов, то сообщение возвращается к магазину сообщений и повторено. Я также настроил хранилище сообщений jdbc для errorChannel. Каждый раз, когда обработка сообщений терпит неудачу, сообщение возвращается в исходное хранилище сообщений, и в хранилище сообщений канала ошибок имеется одна запись для каждой попытки повтора.
Если опрос сделан не транзакционным, а сообщение не обрабатывается первым подписчиком, сообщение отправляется на канал ошибки, но второй абонент никогда не получает сообщение.
Похоже, что есть что-то принципиально неправильное .. Это с моей конфигурацией?