msmq - 消息从消息队列中消失
问题描述
在我们的软件中,我们将 Rebus 服务总线与 Microsoft 消息队列结合使用来执行各种操作。由于一段时间以来存在多种情况,消息被发送到队列但不知何故消息没有被处理程序拾取并且消息从队列中删除(或者它从未到达)。我们在错误队列或死信队列中找不到消息。它在太空中的某个地方消失了,我们不知道发生了什么。
我们已经在队列中启用了日志,对于失败的消息,我们看到当前中止计数设置为 3,其中成功处理的消息的当前中止计数为 1。与我们的 rebus 配置对应(见下文),但是我们不知道为什么它们被中止或为什么某些消息失败。事件日志中也没有任何内容。
这是我们当前的 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();
任何人都知道为什么消息消失了?任何帮助表示赞赏!
解决方案
我们弄清楚了消息消失的原因。该应用程序无权将消息放入错误队列(我们感到羞耻)。
推荐阅读
- python - 如何通过优雅的编码更快地将一些逻辑应用于数据框列
- karate - 空手道使用模式匹配验证多个可能的值
- java - 在 jre/bin 目录中找不到 javaws.exe
- amazon-web-services - How to call a grpc service running on ec2 from aws lambda
- python - Python程序不会读取文本文件中的新行
- node.js - 我可以用作 webpack 配置的 es-modules 吗?
- time-complexity - 内循环只运行一次时嵌套循环的时间复杂度?
- java - SendKeys() 仅在我的表单的一个字段中不起作用
- javascript - 嘿,我正在尝试将 2 个条件放在一个 if 语句中。一个在 Javascript 中,一个在 PHP 中
- tensorflow - 使用 GPU 的自组织地图