2017-12-04 10 views
0

おはようございます。JMS + ActiveMQ:データへの排他的アクセス

1)私はJMSProducer、ActiveMQ Queryを作成し、いくつかのメッセージを送信するシンプルなアプリケーションを持っています。

2)私は、ActiveMQ Queryのサブスクライバ であるアプリケーションも持っています(上記のアプリケーションからメッセージを受け取ります)。

これは状況です:

私は加入者のAppに別のサーバ設定を作成して、異なるポートで一度に二回、それを起動します。 (たとえば、jetty-http-port-9998/jetty-ssl-port-9994で開始されたsubscriber-App1、jetty-http-port-9999/jetty-ssl-port-9995で開始されたsubscriber-App2)

Intellij IDEaでsubscriber-App1コンソールとsubscriber-App2コンソールを開き、producer-Appによってメッセージを送信し始めます。そして、私は、加入者がローテーションでメッセージを受け取ることを見ています。私が初めてそれを送るとき、subscriber1がそれを受け取ります。 2回目 - 加入者2; 3回目 - サブスクライバ1など

質問:サブスクライバアプリケーションをデータに排他的にアクセスできるように設定するにはどうすればよいですか?主な条件は次のとおりです。キューの購読者が1人いる場合、別のアプリケーションはキューからメッセージを受信できません。また、異なるポートで2つのsubscriberAppを起動すると、すべてのメッセージが1つだけ受信されます。

ありがとうございます!

+0

達成しようとしていることは明確ではありませんか?あなたの「あなたの」消費者(「加入者」がpub-sub、すなわちトピック関連の用語である)がキューに付いていることを確認したい場合は、ブローカーを保護するだけです。消費者のインスタンスが1つだけであることを確認したい場合は、それは手間がかかります。達成しようとしていることを明確にすることはできますか? – sceaj

答えて

0

あなたの目標を達成するためにexclusive consumer機能を使用できるはずです。

関連する問題