Java EE と ActiveMQ を使用しています。QUEUE にメッセージを送信できる JMS Queue を実現したいのですが、Consumer + MessageListener がこのメッセージを読み取る必要があります。
私の消費者のコードは次のとおりです。
private void initializeActiveMq() throws JMSException {
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
// Create a Connection
connection = connectionFactory.createConnection();
connection.start();
// Create a Session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Queue)
Queue queue = session.createQueue(queueName);
// Create a MessageConsumer from the Session to the Queue
consumer = session.createConsumer(queue);
consumer.setMessageListener(this);
}
しかし、問題は、このコードを実行するたびに、新しいコンシューマーをキューに追加し、コンシューマーがメッセージを正しく配信しなかったという奇妙な動作をすることです。コンシューマが 1 つしかない場合、それは完璧に機能します。
では、キューにコンシューマーが 1 つしかないことを確認するにはどうすればよいでしょうか?