Потребитель ActiveMQ не может удалить сообщение из очереди
Я использую реализацию JMS-очереди Apache ActiveMQ, в которой около 300 потребителей прослушивают отдельные очереди в одном экземпляре AMQ, размещенном за конфигурацией nio-ssql.
потребитель 1 слушает Queue1
потребитель 2 слушает Queue2
потребитель 3 слушает Queue3
потребитель 4 слушает Queue4
Существует один производитель, который помещает сообщения в эти очереди в зависимости от рабочего процесса. Каждый потребитель размещается в своей среде, представляющей собой смесь серверов Windows и Linux, а производители размещаются в облачной среде Linux.
Большинство потребителей могут создавать соединения, создавать очереди на брокере и могут исключать сообщения из брокера сообщений без каких-либо проблем.
Однако некоторые потребители не могут исключить из очереди сообщения из очереди. Может кто-нибудь, пожалуйста, помогите разобраться в этой проблеме и предложить?
Please find below sample consumer code:
//Create a Connection
Connection connection = new ActiveMQConnectionFactory(brokerUrl).createConnection(username, password);
connection.setExceptionListener(this);
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Queue)
Destination destination = session.createQueue(SAMPLE_QUEUE_NAME);
// Create a MessageConsumer from the Session to the queue
consumer = session.createConsumer(destination);
while (true) {
if (Thread.interrupted()) {
EcwLog.AppendToLog(logPrefix + "terminating MQ connection");
terminateaMQConnection();
break;
}
Message message = consumer.receive();
processMessage(message);
}