WCF + MSMQ 4. Кто перемещает сообщение из очереди повторных попыток обратно в очередь приложений? - PullRequest
4 голосов
/ 25 января 2012

Это простой вопрос, но я не смог найти ответ.

Предположим, мое сообщение помещено в очередь повторов (кто создает очередь повторов? Это WCF или служба MSMQ?)

Через 5 минут (это моя задержка повтора) это сообщение возвращается в очередь приложения.

Вопрос: кто перемещает сообщение из очереди повторов в очередь приложений после истечения времени ожидания?

Бонусный вопрос: как отслеживается задержка? Получает ли сообщение «перемещенную» временную метку и «повторную» временную метку?

Ответы [ 3 ]

2 голосов
/ 26 января 2012

WCF с MSMQ 4.0 действительно обеспечивает автоматическую повторную попытку и обработку ядовитых сообщений , хотя ответ Хью правильный для более старых версий MSMQ.

Редактировать из комментариев: Вклидентифицируя процесс, который перемещает сообщения в очереди повторов и обратно, я бы предположил, что это сама служба MSMQ, поскольку это новая функция в MSMQ 4.0.WCF участвует в транзакции, которая охватывает все это действие и, конечно, обрабатывает сообщения, помещенные в очередь, MSMQ.

1 голос
/ 26 января 2012

WCF со стандартными привязками msmq ( netMsmqBinding и msmqIntegrationBinding ) не поддерживают повторные попытки.Итак, в ответ на ваши вопросы:

кто создает очередь повторных попыток? - Вы делаете.

, кто перемещает сообщение из очереди повторных попыток в очередь приложения послевремя ожидания? - Вы делаете.

как отслеживается задержка? - Вы должны это сделать.

NServiceBus isс открытым исходным кодом и может использовать MSMQ для транспорта.Этот продукт обеспечивает функциональность повторных попыток из коробки, но не использует WCF.

ОБНОВЛЕНИЕ

Выше действует для MSMQ 3 и ниже.

0 голосов
/ 13 февраля 2012

Согласно этой статье Обработка отравляющих сообщений MSMQ 4 предоставляет несколько новых функций, которые позволяют приложению обрабатывать подозрительные сообщения с использованием подзадач. Эти функции:

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

Так что похоже, что фактический ход обрабатывается WCF, а не MSMQ; и MSMQ просто теперь имеет средства для поддержки сообщений о ядовитых ошибках и повторных попыток обработки.

...