Microsoft消息队列丢失消息

时间:2009-02-10 19:52:17

标签: msmq

我正在使用C#和.Net Framework 1.1(是的,但是我继承了这些东西并且无法转换)。我将消息放在事务性队列中,但它在大约50%的时间内没有进入队列。运行安装了所有Service Pack的工作组和Windows / XP Professional。我也没有在死信队列中看到任何消息。

任何想法在哪里看?

1 个答案:

答案 0 :(得分:2)

如果它根本没有到达队列并且没有进入死信队列,则表明该项目没有被发送到队列。您应该能够通过打开队列的日志来确认是这种情况。

假设它没有到达队列,那可能是一个交易问题。我会检查你是否每次都将消息提交给队列。确保没有任何异常被抛出和吞噬导致事务回滚或永远不会被提交(基本上是相同的事情)。还要确保没有任何条件语句表示提交被跳过。

我会在事务启动,提交和回滚的每个位置以及创建消息的任何位置周围添加一些日志记录。然后,您可以查看日志以查看事件的顺序,并查看误入歧途的内容。

另一种选择是删除所有事务代码并针对非事务性队列测试代码。如果所有消息都出现,那么这是一个交易问题。如果没有,问题就在其他地方。

我经常使用MSMQ而且我通过经验学到的一件事就是它运作得很好而且我的弱点是: - )