MSMQ维护一种称为“传出队列”的队列。 MSMQ服务使用这些队列来保存发往消息时无法联系的服务器的消息。这些是特殊的临时队列,与普通的公共队列和专用队列分开。
我最近遇到一种情况,其中一些发往本地系统的消息(即生成该消息的同一台计算机)最终出现在“传出队列”之一中。使用管理控制台钻取到传出队列时,可以看到目标具有本地系统和队列的正确路径信息。在此特定方案中,这些“传出队列”中保存的消息永远不会传递到正确的队列。留在那里,实际上已经失去了。
一些发往本地系统队列的消息,包括“传出队列”中列出的相同队列的消息,都可以正常传送。当消息最终出现在“传出队列”中似乎是随机的。那就是:有些人会工作正常,有些则不会。
似乎受此影响的队列都是非交易性的。事务性队列似乎总是接收消息。至少,发送消息的应用程序没有捕获事务队列的异常。
什么会导致MSMQ将发往本地系统队列的消息放入“传出队列”?是MSMQ服务无法联系自己发送消息吗?系统非常繁忙(CPU使用率为80%)。这样做时,MSMQ可能会缺乏资源吗?
答案 0 :(得分:0)
我在过去看到过与DNS相关的MSMQ问题。尝试在C:\ Windows \ System32 \ Drivers \ etc \ HOSTS文件中放置一个完全限定的DNS条目,看看它是否有帮助。
不确定为什么你在这里遇到DNS问题,但它可能会有所帮助。