有人能解释一下处理传递失败信息的这3种方法之间的区别吗?
- 毒消息队列服务
- 死信队列服务
- 使用响应服务来处理故障
我有《Programming WCF》,但我不太明白何时使用其中一种而不是另一种,或者何时使用多种方法会更合理。谢谢!
死信和毒信是两个不同的概念。 毒信是可以从队列中读取的消息,但是你的代码不知道如何处理它,因此你的代码会抛出异常。如果这种情况持续一段时间,你希望将此消息放在另一个队列中,以便处理其他消息。这方面的良好方法在MSDN上有描述。
死信是一条甚至没有被队列处理的消息。网络故障或接收 MSMQ 计算机关闭等情况。该消息将在一段时间后由 Windows 自动放入死信队列。因此,建议编写一个监视死信队列的服务。