2017-05-18 13 views
5

ActiveMQのネットワークに接続しているときに問題が発生しています。ActiveMQネットワーク経由でメッセージを転送中に発生する問題

S1:

私は2つのシナリオを持っている私のアプリケーションが最初にActiveMQの "A" に接続されています。そして、このactiveMQ "A"はActiveMQ "B"に接続されています - これは私にいくつかの問題を引き起こすシナリオです。 S2:私のアプリケーションはActiveMQ "B"に直接接続されています。

どちらの場合も、同じキューにデータを送信していますが、まったく同じデータを送信します。 予想どおり:ActiveMQ "B"がデータを受信したときに、同じキューで応答する必要があります。

シナリオS1では、データは自分のアプリケーションからActiveMQ "A"に送信され、次にActiveMQ "B"に転送されますが、このActiveMQ "B"は応答しないようです。実際はActiveMQ "A"ですActiveMQ "B"からデータを受信しません。 これは私の主な問題で、ActiveMQ "B"にアプリケーションを直接接続してデータを受信するため、なぜ動作しないのか分かりません。

私はS1とS2を説明する簡単なスキーマを作成しようとしました。

誰もこの種の問題に遭遇しましたか?問題の原因を見つけるためにどこを調べるべきですか?

enter image description here

EDIT:いくつかの詳細:ActiveMQので

「」私は消費者がある見ることができるがしかし、ActiveMQの「B」における(カラム「は、消費者の数は、」5に等しいです)は消費者ではなく(「消費者数」列は0)、アクティブなMQ「A」の場合と同様に5でなければなりません。何か案は ?

多分networkTTL設定に関連
+0

あなたのシナリオS1では、ActiveMQ Bはどうしたらいいのでしょうか?別の消費者がBサーバーをポーリングして応答を出していますか? – Adonis

+0

私は個人的に同様の状況を経験しましたが、あなたのケースは異なる場合があります。コンシューマごとに別々のキューを使用している場合、特定のコンシューマに対して保留中のメッセージがたくさんあるブロッキングキューが原因で通信が切断される可能性があります。キューをチェックし、クリーンアップを試みてください。 – YuVi

答えて

0

ActiveMQ "A"とActiveMQ "B"はどちらも簡単な認証プラグインを使用します。私の問題は、応答時に、ActiveMQ "B"がActive MQ "A"に接続しようとしましたが、認証に失敗しました...それはとても簡単です!事実、私はActiveMQ "B"に対して支配力を持っていませんでした。 したがって、解決策は、ActiveMQ "B"からuser/pwdを受け入れるためにActiveMQ "A"を設定することでした。

1

。(http://activemq.apache.org/networks-of-brokers.html

デフォルトの設定では、メッセージは、ネットワーク内だけ一歩を行くことができます。 AからBに行くと、Aに戻ることはできません。

+0

私はconnectorにnetworkTTL = "3"を追加しましたが、問題は変わりません。私は私の問題について何かを追加したい:activeMQで "A"私は消費者があることがわかります( "Number of consumer"が5に等しい)。しかし、activeMQ "B"には消費者がいません( "Number of consumer "は0)、アクティブMQ" A "の場合と同様に5でなければなりません。何か案は ? – Ashbay

関連する問題