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 /ActiveMqdllの1.1リリースでのみ可能でした。バージョン1.2または1.3のメッセージを受信できませんでした。

しかし、接続時にwireformat.version = 2をパラメーターとして渡すと、すべて正常に機能します。ブローカーは5.0.0であり、これは新しいバージョンのブローカーでも問題なく機能すると強く思います。

ありがとうマット

于 2010-06-28T09:15:30.590 に答える
0

クライアントがメッセージを受信しない理由はいくつかあります。1つは、Connection.Start()を呼び出さなかったためです。それがないと、メッセージポンプはクライアントへのメッセージのディスパッチを開始しません。もう1つの理由は、現在耐久性のないトピックサブスクライバーがパブリッシャーの後に開始されたためである可能性があります。この場合、トピックを使用しているためメッセージは配信されません。トピックは、メッセージが送信されると忘れられてしまうという点でキューのようなものです。後で参加するサブスクライバーは、サブスクライブする前に送信されたメッセージを受信しません。

よろしくティム。

オープンソース統合: http: //fusesource.com

于 2010-06-24T21:25:40.610 に答える