我理解死信队列和毒信队列之间的区别。我将在事务和持久性的背景下发言。
DLQ:客户端发送消息。MSMQ无法传递该消息。消息保持在队列中,等待发送到目标队列。
PQ:消息下发成功。WCF服务处理该消息。在WCF操作期间发生了一些错误。消息被放入有毒队列中。
(以上错误请指正)
现在,如果WCF服务遇到错误,并且事务作用域(属性)已就位,那么它如何将消息放入有毒队列中,或者是否必须开发此功能?如果它需要开发,那么它是如何完成的?如何处理有害消息?有没有办法把它们放回队列中,以便再次处理?如何确定消息是否是有毒的?例如,WCF中的操作可能会遇到错误,但可以从中恢复。
发布于 2012-04-22 02:04:32
您可以在MSDN - How to: Exchange Messages with WCF Endpoints and Message Queuing Applications上阅读有关Poison Message Handling on MSDN的更多信息
当服务从事务下的目标队列读取消息时,该服务可能会由于各种原因而无法处理该消息。然后将该消息放回队列中再次读取。要处理重复失败的消息,可以在绑定中配置一组有害消息处理属性。共有四个属性: ReceiveRetryCount、MaxRetryCycles、RetryCycleDelay和ReceiveErrorHandling。
发布于 2014-02-03 12:56:35
只有消息队列才会将消息放入死信队列。应用程序只能读取和删除死信队列中的消息。
https://stackoverflow.com/questions/10259142
复制相似问题