有没有办法查看NServiceBus目前存在哪些订阅

时间:2012-02-18 06:06:05

标签: nservicebus

我关心我的NServiceBus解决方案。

我有一个“MessageHub”,它发布了一些非常重要的消息。但有时它会丢失对其订阅的跟踪,只是丢弃该消息,因为它认为没人在听。

我尝试启用“NServiceBus.Integration”来存储订阅。但尽管如此,我还是有一个糟糕的启动顺序问题,它认为什么都没有听。

有没有办法调试这个过程?试着弄清楚为什么会混淆?

我甚至不知道如何看待它“认为”它的订阅......

我选择了NServiceBus,因为它不应该丢失数据。现在我正在失去大量的吸盘。我知道这是一个配置问题,但它引起了很大的麻烦。

2 个答案:

答案 0 :(得分:1)

您的情况可能发生的是您使用MSMQ进行订阅存储。尽管订阅可能会持续一段时间,但使用MSMQ来长期存储东西总是会变得不稳定。

对于持久订阅存储(永久存在),您应该使用SQL Server作为订阅存储。

注意:无论您是使用sql还是msmq来存储它们,都可以随时查看当前订阅。在SQL中,只需查看订阅表,并查看发布者订阅队列中的msmq。

<强>更新

从版本3开始,我一直在使用默认的RavenDb。

答案 1 :(得分:0)

根据我的经验,为了正确分配订阅,首先应该启动EventHandler项目,然后当它们都空闲时,启动CommandHandlers(Publishers)。

您可以看到使用Service Bus MQ Manager订阅了哪些消息,它有一个对话框,列出所有“消息”及其订阅者/发布者。我的一个侧面项目,它的免费和开源。 http://blog.halan.se/page/Service-Bus-MQ-Manager.aspx