質問

メッセージ駆動型Beanが2つあります。これらのBeanの2つのアクティベーション仕様。メッセージバスが1つあり、両方のアクティベーション仕様がこの1つのバスに構成されています。 2つの異なるキューと、1つのメッセージバス用に構成された1つのキュー接続ファクトリーがあります。

ここで、キューを決定した後、実行時にメッセージをキューの1つに送信するコードを記述します。ただし、両方のMDBが同じメッセージを受け取ります。 この構成は一般的にどのように行われますか?常に1つのキューを設定しますか-> 1キュー接続ファクトリ-> 1メッセージバス-> 1 MDB?それはすべて1対1の関係ですか?

ああ、これについて言及するのを忘れていました:Websphere Application Server v6.1を使用しています

役に立ちましたか?

解決

一般に、概念は次のとおりです。

  1. メッセージが宛先(キュー/トピック)に送信(キュー)/公開(トピック)
  2. ActivationSpecは特定の宛先(キュー/トピック)でメッセージをリッスンします
  3. ActivationSpec:宛先は1:1の関係です
  4. Bean(コンシューマーであるMDB)はActivationSpecをリッスンするように構成されています。

これが意味することは、実際には、beanがactivationSpecによって提供される間接層で宛先にリンクされることです。

バスの出番-SIBusは、これをすべて可能にするメッセージングインフラストラクチャです。目的地はバスでホストされています。

質問に答える-ActivationSpecは、メッセージの送信先となるバス上の宛先をリッスンするように構成されます。接続ファクトリーは、メッセージの送信先のバスを決定します。宛先名が一意であり、特定のキューをターゲットにしている限り(JMSキューはバス上の宛先にリンクされている)、1つのメッセージは1つのActivationSpecでのみ受信されます。

バス上にいくつの宛先(WAS管理コンソールのSIBusリンクの下)が作成されましたか?構成が正しいかどうかを確認/検証してもらえますか?

質問に答える-「アクティベーションスペックごとに1つのバスとキューごとに1つのキュー接続ファクトリー」 -答えは「いいえ」です。

  1. バスは、「n」をホストできる基盤インフラストラクチャです。目的地。 1つのActivationSpecは1つの宛先をリッスンします。
  2. キュー接続ファクトリーは、キューを作成するためのファクトリー(J2EEファクトリーパターン)です。

他のヒント

両方のMDBに同じメッセージを受信させたいと言っていると思いますか?

この場合、MDBはキューではなくトピックをリッスンする必要があります。

別の方法として、メッセージを転送するようにIBM MQを構成する方法があります。たとえば、特定のキューに投稿されたメッセージを n その他< em>キューが、再投稿の前に何らかのメッセージの強化が行われるときに使用されるのを見てきたので、あなたが達成しようとしているものに対してやり過ぎだと思います。

メッセージバスが必要な理由

通常、MDBをキューに関連付けます。1対1の関係です。メッセージをキューに送信すると、リスナーはそれを取得します。あなたを買っているバスは何ですか?

WebLogicでJMSを実行しましたが、メッセージバスのような構成は必要ありません。 IBMのものだと思います。

こちら SpringでJMSを実行する方法の例。それが私が進めることをお勧めする方法です。

更新:あなたの質問を誤って解釈しました。両方のキューが同じメッセージを受け取っていると言ったとき、それが望ましい動作だとは思いませんでした。もしそうなら、トピックは正しい方法です。キューはポイントツーポイントメッセージングです。トピックはパブリッシュ/サブスクライブです。

あなたが持っている設定はあなたが思っているように設定されていないのではないかと思います。説明したのと同じ構成を使用し、多くのMDB(キューとアクティベーション仕様)、単一のファクトリー、メッセージバスを使用し、すべてが期待どおりに動作します。

両方のキューに同じメッセージを送信するか、キューの代わりにトピックを定義しない限り、実際に表示される動作を取得することはできません。キューはポイントツーポイントメッセージングのみをサポートしているため、両方のMDBが同じキューから読み取りを行っている場合でも、1つだけがメッセージを取得します。説明したのはトピックベースの動作です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top