MSMQ维护一种称为“传出队列”的队列类型。MSMQ服务使用这些队列来保存发送给它在生成消息时无法联系的服务器的消息。这些是特殊的临时队列,与普通的公共队列和专用队列分开。
最近,我遇到了一种情况,即一些发送给本地系统的消息(即生成消息的同一台计算机)最终出现在一个“传出队列”中。当使用Management钻入传出队列时,可以看到目的地具有本地系统和队列的正确路径信息。在这种特殊情况下,这些“传出队列”中保存的消息永远不会传递到正确的队列中。留在那里的人,实际上是迷路了。
一些发送给本地系统上队列的消息,包括“传出队列”中列出的相同队列的消息,都可以很好地传递。当消息在“传出队列”中结束时,似乎是随机的。也就是说,有些人会工作得很好,有些人则不会。
受此影响的队列都是非事务性的。事务性队列似乎总是接收消息。至少,发送消息的应用程序尚未捕获事务性队列的异常。
是什么原因导致MSMQ将本地系统中的队列消息放置到“传出队列”中?是MSMQ服务无法联系自己发送消息吗?系统相当繁忙(80%+ CPU的使用)。当MSMQ这样做时,它会不会缺乏资源呢?
发布于 2010-01-23 02:58:28
我在过去见过与DNS相关的MSMQ问题。尝试在C:\Windows\System32 32\Driver\etc\HOSTS文件中放置一个完全限定的DNS条目,以查看它是否有帮助。
不知道为什么这里会出现DNS问题,但这可能会有所帮助。
https://stackoverflow.com/questions/2118717
复制相似问题