【发布时间】:2019-02-25 17:58:03
【问题描述】:
在我们的软件中,我们将 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();
有人知道为什么消息消失了吗?任何帮助表示赞赏!
【问题讨论】:
-
我们也禁用了 MSMQ 中的存储限制,但这也无济于事。
-
当你说你检查了死信队列时,你是指 Rebus 的错误队列吗?还是您的意思是 MSMQ 的“事务性死信消息”队列?
-
我们检查了 rebus 错误队列和事务死信队列
-
您能否以某种方式使用来自
_rpAppBusAddress指定的相同队列名称的消息的其他东西? -
@JohnBreakwell 否定 journilang 默认由 rebus 启用