2010-06-24 105 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