2011-07-18 5 views
0

Вот мои каналы настройки:Pub-Sub стратегия обработки ошибок

  1. JDBC сообщения-магазин поддерживается очередь
  2. моста, соединяющий очередь к пабу подканале
  3. голосующего сконфигурировано на паб-субканале является транзакционным

Теперь, когда возникает исключение, поднятое в любом из абонентов, транзакция откатывается назад, и сообщение повторяется навсегда. Сообщение снова обрабатывается всеми подписчиками. Если это постоянное исключение, по крайней мере, у абонента, сообщение не обрабатывается ни одним из других абонентов.

Какая стратегия обработки исключительных ситуаций здесь?
Я предпочитаю обработку исключений на подписчике, то есть только неудачный абонент будет повторять попытку, другие подписчики будут обрабатывать сообщение и двигаться дальше.

Как это можно реализовать в весенней интеграции?

Подробнее здесь ..

  1. Если голосующий производятся транзакционной и сообщение не обработки, по меньшей мере, один из абонентов, то сообщение возвращается к магазину сообщений и повторено. Я также настроил хранилище сообщений jdbc для errorChannel. Каждый раз, когда обработка сообщений терпит неудачу, сообщение возвращается в исходное хранилище сообщений, и в хранилище сообщений канала ошибок имеется одна запись для каждой попытки повтора.

  2. Если опрос сделан не транзакционным, а сообщение не обрабатывается первым подписчиком, сообщение отправляется на канал ошибки, но второй абонент никогда не получает сообщение.

Похоже, что есть что-то принципиально неправильное .. Это с моей конфигурацией?

ответ

0

http://forum.springsource.org/archive/index.php/t-75000.html
Обсуждение в приведенной выше теме объясняет взлеты и недостатки каркаса относительно pubsub impl.

Мы решили пойти с подходом ниже: 1. Полторы будут транзакционными, то есть все подписчики обрабатывают сообщение успешно или ни одно из них. Сообщение будет повторено со всеми субмаринами, пока все они не будут успешно завершены.

  1. Обработка ошибки несет ответственность абонентов

  2. только исключение системы будет ой обратно в Poller. Бизнес-исключения будут обрабатываться абонентом, и сообщение будет помещено на некоторый канал ошибки вручную.

Смежные вопросы