我正在尝试从C#应用程序使用ActiveMQ主题上的消息。我正在使用1.3 .net版本,我没有收到任何消息。
我现有的代码使用较旧的库(以及构建在我不想使用或升级的库之上的库)工作正常,所以我知道消息正沿着主题传播,但我的简单程序更新图书馆看不到它们。
我正在使用从http://remark.wordpress.com/articles/publish-subscribe-with-activemq-and-nms/复制并粘贴的代码作为我的测试。 SimpleTopicSubscriber(通过简单的更改使其成为非持久消费者)只是没有收到任何东西。 SimpleTopicPublisher工作正常 - 我可以发送一条简单的消息,它可以通过,没问题。
查看JMX控制台,我可以看到我的订阅者连接,看到它是正确的主题,但它只是没有收到任何消息。
有什么想法吗?我甚至尝试使用1.2库,但这没有任何区别。
由于 马特
答案 0 :(得分:1)
原来有2个问题。我错误地编辑了示例代码,并传递了持久的使用者ID而不是选择器。不是非常聪明。
一旦我解决了这个问题,我就可以收到消息,但只能使用NMS / ActiveMq dll的1.1版本。我无法接收版本1.2或1.3的消息。
但是如果我在连接时将wireformat.version = 2作为参数传递,那么一切正常。经纪人是5.0.0,我强烈怀疑这对于经纪人的更高版本是可行的。
由于 马特
答案 1 :(得分:0)
有几个原因导致您的客户端可能没有收到消息,可能是您没有调用Connection.Start(),而消息泵不会开始向您的客户端发送消息。另一个原因可能是您现在的非持久主题订阅者是在发布者之后启动的,在这种情况下,由于您使用的是主题而没有消息传递,而主题就像队列一样,一旦发送消息就会忘记这样做稍后加入的订阅者不会收到在订阅之前发送的任何消息。
此致 添