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