Glassfish 3.1.2を使用しており、1つのノードと2つのインスタンスを持つクラスターをセットアップしました。
クラスターにデプロイしたトピックをサブスクライブするメッセージ駆動型Beanがアプリケーションにあります。
トピックにメッセージを公開するとき、両方のインスタンスがメッセージを受信するようにします。
ただし、実際には、1つのインスタンスのみがメッセージを受信していることがわかりました。
「共有サブスクリプション」と呼ばれる機能に遭遇していると思います http://docs.oracle.com/cd/E18930_01/html/821-2438/gjzpg.html#MQAGgjzpg
この機能(デフォルトで有効になっています)は、同じクライアントIDを持つクラスター内のBeanが共有され、事実上1つのサブスクリプションのみであることを示しています。
デフォルトでは、MDBのクライアントIDはその名前であると表示されます。これは、両方のインスタンスが同じクライアントIDを使用していることを意味します。
したがって、この機能を完全に無効にする以外に、各インスタンスが異なるクライアントIDでサブスクライブするようにMDBをセットアップできるかどうかを知りたいですか?両方のインスタンスが同じWARファイルを使用しているため、これは少し注意が必要です。アノテーションでクライアントIDを設定できると思いますが、実行時に変更できるかどうかはわかりません...