2010-06-24 135 views
2

我试图从C#应用程序使用ActiveMQ主题上的消息。我正在使用1.3 .net版本,并且我没有收到任何消息。ActiveMQ + NMS无法接收消息

我现有的代码使用较旧的库(以及建立在我不想使用或升级的库之上的库),因此我知道消息沿着主题前进,但我的简单程序较新的库只是看不到它们。

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

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

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

感谢 马特

回答

1

原来有2个问题。我不正确地编辑了示例代码,并传入了一个持久的使用者标识而不是选择器。不是非常聪明。

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

但是,如果我连接时将wireformat.version = 2作为参数传递,则一切正常。经纪人是5.0.0,我强烈怀疑这可以与更高版本的经纪人合作。

感谢 马特

0

为什么有你的客户端可能无法接收消息的几个原因,一个可能是因为你没有调用Connection.Start(),而没有消息泵无法启动调度消息给你的客户。另一个原因可能是您的非持久话题订阅者是在发布者之后启动的,在这种情况下,自从您使用主题并且主题类似于队列之后,将不会传递任何消息。一旦发送消息被忘记,稍后加入的用户在订阅之前不会收到任何已发送的消息。

Registers Tim。

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

+0

感谢蒂姆,不幸的是,我一定打电话开始,我已经把我的出版商将消息发送每30秒...... – citizenmatt 2010-06-24 22:49:02

+0

你可以发布你的源代码给用户的ActiveMQ小组,我会看看发生了什么事。 问候蒂姆。 开源集成:http://fusesource.com – 2010-06-25 21:30:05

+0

感谢您的帮助 - 事实证明,这是我的错误的一半,一半的电线格式问题... – citizenmatt 2010-06-28 09:16:08