2012-04-04 14 views
7

SSLトランスポートを使用しているactiveMQブローカがあります。ブローカーを使用している約10人の消費者がいます。私は私のルートを設定するためにラクダを使用しています。ActiveMQコンシューマハング

待ち行列に保留中のメッセージがあっても、コンシューマを再起動しても、頻繁にハングアップして新しいメッセージを消費しません。

私は、問題を再現しようとしているときに消費者を1歩ずつ進めることによって、どこでこれが起こっているのかを特定しようとしました。私はついに消費者に問題を再現させることができました。一定の時間が経過するとハングしますが、アクティブなMQ管理コンソールに移動してキュー内のメッセージを表示しようとすると、再び実行されます。私はJettyがWebページのキューをリフレッシュするための接続を引き起こしていると思っているので、私が持っているスレッドの問題のブロックを解除しています。これをどのようにデバッグすればよいですか?

おかげ

+0

ActiveMqの問題のようです。このような状況があり、新しい顧客を開こうとすると、彼はメッセージを受け取りますか? – Julias

+0

いいえ、必ずしもそうではありません。私は前に消費をオフにしてからもう一度やり直してみましたが、メッセージを受け取るためにキューに戻ってこないでしょう。 – Derek

答えて

7

を参照してください、特定の消費者の「立ち往生」メッセージを減らすために1にキュープリフェッチを設定してみてください、私はちょうどインターネット上の説明を見つけました:http://activemq.2283324.n4.nabble.com/Consumer-is-not-able-to-pick-messages-from-queue-td2531722.html

明らかに、セレクタとすべてのメッセージは同じキューにあります。これは私たちのために起こっていた - 私は消費者を始めていなかったので、別の消費者のためのセレクターを使った完全なページのメッセージで終わった。

0

私は同じ問題を抱えていましたが、問題はキューから物事を取り除くために使用していたのと同じ接続を使用してキューに物事を追加しようとしていたことでした。

ひとたびそれらを分離すると(完全に異なる2つのコンテキスト、生成用と消費用の2つのコンテキスト)、問題は解決されました。