死信队列和毒药队列

时间:2012-04-21 13:01:35

标签: wcf msmq

我理解死信队列和毒药队列之间的区别。我将在交易和耐久性的背景下发言。

DLQ:客户端发送消息。 MSMQ无法传递消息。消息保留在队列中,等待发送到目标队列。

PQ:消息已成功发送。 WCF服务处理该消息。在WCF操作期间发生了一些错误。消息放在毒药队列中。

(如果我错了,请纠正我)

现在,如果WCF服务遇到错误,并且事务范围就位(属性),那么它如何将消息放入毒性队列或者是否必须开发?如果需要开发那么它是如何完成的? 处理有害信息怎么样?有没有办法将它们放回队列中再次处理?如何确定该消息是否有毒?例如,WCF中的操作可能会遇到错误,但可以从中恢复。

2 个答案:

答案 0 :(得分:0)

您可以在Poison Message Handling on MSDN

上详细了解MSDN - How to: Exchange Messages with WCF Endpoints and Message Queuing Applications有关MSMQ的更多信息

“当服务在事务下从目标队列中读取消息时,服务可能由于各种原因而无法处理消息。然后将消息放回队列中以便再次读取。处理重复失败的消息,可以在绑定中配置一组有毒消息处理属性。有四个属性:ReceiveRetryCount,MaxRetryCycles,RetryCycleDelay和ReceiveErrorHandling。“

答案 1 :(得分:0)

仅消息队列将消息放入死信队列。应用程序只能读取和删除死信队列中的邮件。