2012-04-21 2 views
2

Я понимаю разницу между «Очередь мертвой буквы» и «Ядовитая очередь». Я буду говорить в контексте транзакций и долговечности.Очередь очереди мертвых букв и ящики отражений

DLQ: Клиент отправляет сообщение. MSMQ не может доставить сообщение. Сообщение остается в очереди, ожидая отправки в очередь назначения.

PQ: Сообщение успешно доставлено. Служба WCF обрабатывает сообщение. В ходе операций WCF произошла некоторая ошибка. Сообщение помещается в очередь ядов.

(пожалуйста, поправьте меня, если я ошибаюсь выше)

Теперь, если WCF Service обнаруживает ошибку, и с объемом сделки на месте (атрибут), то как это поместить сообщение в очереди ядовитой или это необходимо разработать? если он нуждается в разработке, то как это делается? А как насчет обработки ядовитых сообщений? Есть ли способ вернуть их обратно в очередь для обработки? Как определяется, является ли сообщение ядом? Например, операция в WCF может столкнуться с ошибкой, но может оправиться от нее.

ответ

0

Вы можете прочитать больше о Poison Message Handling on MSDN Подробнее о MSMQ на MSDN - How to: Exchange Messages with WCF Endpoints and Message Queuing Applications

«Когда служба считывает сообщения из целевой очереди по сделке, услуга может не обрабатывать сообщения по различным причинам. Сообщение затем вернитесь в очередь, чтобы ее снова считывали.Чтобы разобраться с сообщениями, которые терпят неудачу, в привязке можно настроить набор свойств обработки ядовитых сообщений. Существует четыре свойства: ReceiveRetryCount, MaxRetryCycles, RetryCycleDelay и ReceiveErrorHandling. »

+0

Я прочитал это, но в образцах, предоставленных MSDN, я не смог увидеть это поведение. infact при следующем запуске службы на стороне сервера, он не обработает никаких новых или старых сообщений в очереди. Итак, на стороне сервера я добавил код для исключения. Я вижу сообщение все еще в очереди. В следующий раз я отправлю сообщение с клиента - сервер его не получит, но он находится в MSMQ. –

0

Только очередь сообщений помещает сообщения в очереди с мертвой буквой. Приложения могут только читать и удалять сообщения в очереди с мертвой буквой.

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