插入后nservicebus删除订阅记录?

Posted

技术标签:

【中文标题】插入后nservicebus删除订阅记录?【英文标题】:nservicebus deleting subscription record after inserting it? 【发布时间】:2010-05-06 19:32:22 【问题描述】:

我已经使用 nservicebus 玩了几个星期了,由于我的本地机器上一切顺利,我决定尝试建立一个测试环境并进行部署。我正在使用 nservicebus 附带的通用主机,并且在本地运行时使用 nservicebus.Integration 配置文件,但想在测试环境中使用 Nservicebus.Production。我设置了一个 sql server 2008 数据库,对我的 app.config 进行了更改,一切似乎都运行良好。但是经过几次尝试,我注意到我的订阅者没有收到消息。我检查了订阅表,它是空的。在检查日志后,我注意到以下内容:

2010-05-06 15:07:57,416 [1] 调试 NHibernate.Persister.Entity.AbstractEntityPers ister [(null)] - 插入 0: INSERT INTO [Subscription] (SubscriberEndpo int, MessageType) 值 (?, ?) 2010-05-06 15:07:57,416 [1] 调试 NHibernate.Persister.Entity.AbstractEntityPers ister [(null)] - 更新 0: 2010-05-06 15:07:57,416 [1] 调试 NHibernate.Persister.Entity.AbstractEntityPers ister [(null)] - 删除 0: DELETE FROM [Subscription] WHERE 订阅者 端点 = ? AND MessageType = ?

为什么它会在之后插入然后删除我的订阅?为了排除休眠方言问题,我尝试将订阅存储切换到 oracle 10g 数据库。它的行为完全相同,前 2 次有效,然后我开始看到我的订阅在插入后立即被删除。任何想法是什么导致了这种行为?

【问题讨论】:

我使用的是 nservicebus 2.0.0.945。我正在升级到 2.0.0.1145 看看是否有帮助。 【参考方案1】:

只有在订阅者收到取消订阅的请求时才会删除。您能否确认您没有在调用 bus.Unsubscribe 代码中的任何位置?

【讨论】:

是的,我在整个解决方案中搜索了取消订阅,但一无所获。此外,这与 NServicebus.Integration 配置文件一起使用。【参考方案2】:

自从升级到版本 2.0.0.1145 后,我没有遇到过这个问题。我没有进行任何其他更改(除了日志记录配置),所以我假设这是以前版本的错误。

【讨论】:

以上是关于插入后nservicebus删除订阅记录?的主要内容,如果未能解决你的问题,请参考以下文章

NServiceBus - 如何为每个接收者订阅的消息类型获取单独的队列?

无法从 ASP.NET Core 6.0 API NServiceBus 端点订阅事件

使用 BizTalk 而不是 NServiceBus 或 MassTransit 的优点/缺点

CloudKit,重新安装应用程序后,如何将我的订阅重置为当前记录状态?

使用 WiX 将 NServiceBus.Host 安装为服务

最近学习redis一些简单的记录