分散 jms キューを使用しており、weblogic がアプリ サーバーです。私のクラスター化された環境には、3 つの jms サーバーがデプロイされています。プロデューサーは、たとえば、キューの名前 jndi ルックアップ「udq」を使用してメッセージを送信するだけです。これで、各 jms サーバーにコンシューマーが関連付けられ、メッセージを消費することができました。これまでのところ問題はありません。
ここで質問です。3 つの JMS サーバーからのメッセージを消費するコンシューマーを 1 つ持つことはできますか。weblogic では、次の構文 @ を使用して、宛先ルックアップの jndi 命名を許可しています。
qsession1 = qcon1.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
qsession2 = qcon2.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
qsession3 = qcon3.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queue1 = (Queue)ctx.lookup("JMSServer-1@UDQ");
queue2 = (Queue)ctx.lookup("JMSServer-2@UDQ");
queue3 = (Queue)ctx.lookup("JMSServer-3@UDQ");
qreceiver1 = qsession1.createReceiver(queue1);
qreceiver2 = qsession2.createReceiver(queue2);
qreceiver3 = qsession3.createReceiver(queue3);
qreceiver1.setMessageListener(this);
qreceiver2.setMessageListener(this);
qreceiver3.setMessageListener(this);
qcon1.start();
qcon2.start();
qcon3.start();
上記のコンシューマーに対して実装されている OnMessage は 1 つだけです。これは動作しません。任意の提案をお願いします..