在我们的软件中,我们结合使用Rebus服务总线和Microsoft消息队列来执行各种操作。由于一段时间以来,有多种情况将消息发送到队列,但是处理程序无法以某种方式将消息拾取,并且消息已从队列中删除(或者从未到达)。我们在错误队列或死信队列中找不到消息。它迷失在某个地方的太空中,我们不知道发生了什么。
我们在队列上启用了日志,对于失败的消息,我们看到“当前中止计数”设置为3,其中成功处理的消息的“当前中止计数”为1。这与我们的rebus配置相对应(请参阅下面),但是我们不知道为什么它们被中止或为什么某些消息失败。在事件日志中也找不到任何内容。
这是我们当前的中继配置:
Configure.With(_adapter).Transport(t => t.UseMsmq(_rpAppBusAddress))
.Options(o =>
{
o.EnableEncryption(_rebusEncryptionKey);
o.SimpleRetryStrategy(maxDeliveryAttempts:3);
o.EnableDataBus().StoreInSqlServer(rebusConnectionString, attachmentDbTableName);
}).Routing(SetRouting())
.Start();
任何人都不知道为什么消息消失了吗?任何帮助表示赞赏!
答案 0 :(得分:1)
我们弄清楚了为什么消息消失了。该应用程序无权将消息放入错误队列(让我们感到羞耻)。