一般に、コンセプトは次のとおりです。
- メッセージが宛先 (キュー/トピック) に送信 (キュー)/公開 (トピック) される
- ActivationSpec は、特定の宛先 (キュー/トピック) でメッセージをリッスンします。
- ActivationSpec : 宛先は 1:1 の関係です
- Bean (コンシューマである MDB) は、ActivationSpec をリッスンするように構成されています。
これが意味することは、事実上、bean は、activationSpec によって提供される間接レイヤーを使用して宛先にリンクされるということです。
バスの出番 - SIBus は、これらすべてを可能にするメッセージング インフラストラクチャです。目的地はバスでホストされています。
問題になるのは、ActivationSpec は、メッセージの送信先となるバス上の宛先をリッスンするように構成されているということです。接続ファクトリは、メッセージが送信されるバスを決定します。宛先名が固有で、特定のキュー (JMS キューがバス上の宛先にリンクされている) を対象としている限り、1 つのメッセージは 1 つの ActivationSpec によってのみ受信されます。
バス上にいくつの宛先 (WAS 管理コンソールの SIBus リンクの下) が作成されましたか? 構成が正しいかどうかを確認/検証していただけますか?
「アクティベーション スペックごとに 1 つのバスと、キューごとに 1 つのキュー接続ファクトリですか?」という質問に答えてください。- 答えはノーだ。
- バスは、「n」個の宛先をホストできる基盤となるインフラストラクチャです。1 つの ActivationSpec が 1 つの宛先をリッスンします。
- With queue connection factory は、キューを作成するためのファクトリ(J2EEファクトリパターン)です。