0

ActiveMQNMSをaspmvcWebサイトに統合しましたが、ほとんどの部分でうまく機能していますが、最近の問題でレンガの壁にぶつかり、それが自分のものであるかどうかを一生理解できません。欠落している、APIサポートがない、または設計上の欠陥(おそらくAPIにある)...

私は簡単なことをしようとしています-メッセージを送信する前に、一時キューが削除されているかどうかを確認する必要があります。一時キューは、クライアントが切断したり、ブラウザを閉じたりするとすぐに削除されます。これが、一時キューを使用している理由です。ただし、宛先をサーバーに保存して、接続されている間に特定の宛先に特定のメッセージを送信できるようにします。クライアントがブラウザを離れる/閉じるまで、すべてがうまく機能します。つまり、ActiveMQは一時キューを削除し、再接続するまでその一時キューへのメッセージの送信を停止する必要があります。

javax.jms.JMSException:宛先temp-queue:// ID:WIN-HP6U1SD1FB4-29628-1329687650640-0:1:85が存在しません。

これは完全に理にかなっています。ページを離れたり、ブラウザを閉じたりしたため、一時キューがなくなったからです。しかし、これが私を殺すキッカーです-この例外(私が捕まえた)の後、メッセージングシステム全体がダウンします!activemqは、再起動するまでメッセージを送信しなくなりました。私がそれをどのように使用しているかについて非常に基本的な何かを見逃していない限り、これは絶対にクレイジーに思えます。基本的に私が理解できないのは:

1)存在しない一時キューdestにメッセージを送信しようとすると、activeMQがダウンするのはなぜですか?なぜ例外をスローして続行できないのですか?

2)問題ありません#1と一緒に暮らすことができますが、送信する前に一時的な宛先キューが存在するかどうかを確認するにはどうすればよいですか?APIにはこれをサポートするものはないようです。

3)なんらかのクレイジーな理由で#2が不可能な場合、メッセージキューシステム全体をダウンさせるこのjms例外からどのように回復できますか?

コードを投稿しますが、それがここで役立つかどうかはわかりません。

4

1 に答える 1

1

最近解決された NMS バグに遭遇したと思います ( https://issues.apache.org/jira/browse/AMQNET-377を参照)。バージョン 1.5.5 以降に更新すると、より良い結果が得られるはずです。

于 2012-05-17T06:38:25.943 に答える