1

と、クラスタ内の永続サブスクライバ私はところでペーシュ・カショーロを使用するつもりです....JMS複数のインスタンス

は私が持っていると仮定します。

  1. A JMSトピック

  2. 構成されたアンMDBとして耐久性トピックサブスクライバ

  3. MDBの複数のインスタンスがクラスタ全体に展開され、彼らはすべて同じクライアントID値を使用して耐久性サブスクリプションを作成しています。

このシナリオで、クライアントのID値と耐久性サブスクリプションの働き方を考えると、それだけで1 MDBインスタンスのクラスタ全体では、接続に成功すると言うと、他の人が意志に正しい場合失敗します?

ありがとうございます!

クラスタにMDBがデプロイされているため、クラスタ内の複数のMDBインスタンスがリスンしようとしているとします。

答えて

0

JMS 2.0 API [1]では、アプリケーションクラスタ内のノード間で同じ永続サブスクリプションを共有できます。

次の変更は、スケーラビリティを支援するために作られています

アプリケーションは、現在と同じ耐久性や非恒久トピックサブスクリプションで複数のコンシューマを作成することが許可されています。以前のバージョンのJMSでは、単一のコンシューマのみが許可されていました。

あなたはJMSContext.createSharedDurableConsumer()メソッドを使用して共有耐久消費を作成するために、JMS 2.0+ APIを使用することができます[2]

[1] https://java.net/projects/jms-spec/pages/JMS20FinalRelease#What_s_new_in_JMS_2.0? (?リンクの一部である - 行くフィギュア)

[2] https://docs.oracle.com/javaee/7/api/javax/jms/JMSContext.html#createSharedDurableConsumer-javax.jms.Topic-java.lang.String-

+0

私は実際にあなたのシナリオでメッセージ –

+0

を処理するだけで1を確保しようとしている、それはあなたがあなたのトピックが行動したいことが表示されますキューとして。トピックのセマンティクスは、構成されたすべてのクライアントがメッセージを購読して受信できるようなものです。ただし、キュー内では、消費者は1人だけになります。 https://docs.oracle.com/cd/E24902_01/doc.91/e24429/appx_topic_or_queue.htm#EOITW196 JMSトピックではなくキューを設定できる方法はありますか? –

+0

キューは機能しません。同じメッセージを消費するには複数のクライアント(A、B、C)が必要ですが、クライアント(A1、A2、..、N)のインスタンスが複数ある場合は、メッセージの1つのみ。キュー私はそこに私を連れて行くとは思わない。 –

関連する問題