首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF超过MSMQ绑定。如何检测消息何时被移动到毒队列?

WCF超过MSMQ绑定。如何检测消息何时被移动到毒队列?
EN

Stack Overflow用户
提问于 2011-03-25 10:40:11
回答 2查看 1.5K关注 0票数 5

我正在运行一个通过MsmqBinding调用WCF服务的WCF客户端。框架是Windows4.0,客户端和服务器运行在Windows 2008 R2上。通道队列是事务性的。

该服务由以下绑定参数承载:receiveErrorHandling="Move" receiveRetryCount="3" retryCycleDelay="00:00:20" maxRetryCycles="5"

假定((ReceiveRetryCount+1) * (MaxRetryCycles + 1))有效,这将导致在将任何给定消息移动到毒子队列之前对其进行4*6 = 24重试。

将一个IErrorHandler附加到我的服务--我注意到,在wcf子系统最终将消息移动到;MsmqPoisonMessageException子队列之前,使用MsmqPoisonMessageException总共调用了6次(对于一条有害消息)。

我希望记录消息完成重试并将消息移动到毒队列的确切时间。在我看来,唯一的选择是计数某个消息错误的次数,并将此计数与绑定MaxRetryCycles进行比较。这既尴尬又容易出错。

我的问题是:

  • 是否有任何方法可以确定地检测wcf子系统将消息移动到毒队列的事件?

我的参考资料是:http://msdn.microsoft.com/en-us/library/aa395218.aspx

和:http://consultingblogs.emc.com/simonevans/archive/2007/09/17/A-comprehensive-guide-to-using-MsmqIntegrationBinding-with-MSMQ-3.0-in-WCF.aspx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 11:00:15

重试的次数当然是参数的结果;但是在IErrorHandler中,您可以自己显式地将消息移动到毒队列中。否则,它将始终基于绑定参数移动,并将像其他队列一样通过侦听毒队列来检测。

票数 3
EN

Stack Overflow用户

发布于 2011-03-25 15:02:59

有许多很好的监视解决方案,您可以使用这些解决方案来监视消息队列,以等待消息的到达。MonitorWang是一个开源的开放源码程序,它可以检测消息何时到达有害消息或错误队列。在错误队列中检测消息何时已被接收到比尝试检测消息何时已被发送到错误队列更可靠。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5431331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档