2

我正在尝试从 C# 应用程序中使用有关 ActiveMQ 主题的消息。我正在使用 1.3 .net 版本,但没有收到任何消息。

我有使用旧库(以及构建在我不想使用或升级的库之上的库)的现有代码可以正常工作,所以我知道消息正在沿着这个主题传播,但是我的带有新库的简单程序只是没有见不到他们。

我正在使用从http://remark.wordpress.com/articles/publish-subscribe-with-activemq-and-nms/复制和粘贴的代码作为我的测试。SimpleTopicSubscriber(通过简单的更改使其成为非持久消费者)只是没有收到任何东西。SimpleTopicPublisher 工作得很好——我可以发送一条简单的消息,它就会通过,没问题。

查看 JMX 控制台,我可以看到我的订阅者连接,看到它在正确的主题上,但它只是没有收到任何消息。

有任何想法吗?我什至尝试过使用 1.2 库,但这没有任何区别。

谢谢马特

4

2 回答 2

1

原来有2个问题。我错误地编辑了示例代码并传入了一个持久的消费者 ID 而不是选择器。不是很聪明。

一旦我解决了这个问题,我就可以接收消息,但只能使用 NMS/ActiveMq dll 的 1.1 版本。我无法接收 1.2 或 1.3 版的消息。

但是,如果我在连接时将wireformat.version=2 作为参数传递,一切正常。代理是 5.0.0,我强烈怀疑这在代理的更高版本中可以正常工作。

谢谢马特

于 2010-06-28T09:15:30.590 回答
0

您的客户端可能没有收到消息有几个原因,一个可能是您没有调用 Connection.Start(),否则消息泵将不会开始向您的客户端发送消息。另一个原因可能是您现在的非持久主题订阅者是在发布者之后启动的,在这种情况下,由于您使用的是主题,因此不会传递任何消息,并且主题就像队列一样,一旦发送消息,它就会被遗忘,所以稍后加入的订阅者不会收到在订阅之前发送的任何消息。

问候蒂姆。

开源集成: http: //fusesource.com

于 2010-06-24T21:25:40.610 回答