2

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

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

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

(以上如有错误请指正)

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

4

2 回答 2

0

您可以在 MSDN 上阅读有关毒物消息处理的更多信息 有关 MSDN 上的 MSMQ 的更多信息- How to: Exchange Messages with WCF Endpoints and Message Queuing Applications

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

于 2012-04-21T18:04:31.743 回答
0

只有消息队列将消息放在死信队列中。应用程序只能读取和删除死信队列中的消息。

于 2014-02-03T04:56:35.110 回答