【发布时间】:2010-09-23 07:54:56
【问题描述】:
我遇到了一个奇怪的情况:
消息从服务器 A 发送到服务器 B。它进入ServerA的传出队列,然后发送到ServerB的队列。
ServerB 崩溃。我们不得不重新格式化。当我们提起它时,我们忘记安装 MSMQ 服务了。
消息开始在 ServerA 的传出队列中堆积,直到发送消息的程序抛出资源不足异常。
我们注意到错误并将 MSMQ 服务安装到 ServerB 上。 ServerA 开始立即清空其传出队列。
当我们启动程序来处理 ServerB 上的消息时,它无法连接。我们了解到我们忘记在 ServerB 上创建队列。然而,此时,为时已晚。位于 ServerA 队列中的所有 900K 消息都已发送到 ServerB。据我所知,ServerB 把它们扔掉了,因为它没有配置目标队列。我已经知道正确的解决方案是在我们完全设置好 ServerB 之前停止 ServerA 上的队列。
问题是:这真的是我们应该期待的 MSMQ 的真实行为吗?我本以为更防御性的设计方法是让 ServerB 拒绝消息,而不是接受并丢弃它们。
【问题讨论】:
标签: msmq