我正在向JMS隊列發送一些消息。搜索隊列中的特定消息以消耗的可能方式是什麼?如何搜索JMS隊列中的特定消息
我以下列方式嘗試了:我設置JMSCorrelationID
將消息發送到隊列:
public void createDQueue(String queuename, String json, Integer userid) {
try {
QueueSession.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(queuename);
ObjectMessage objectMessage = session.createObjectMessage();
objectMessage.setJMSCorrelationID(String.valueOf(userid));
objectMessage.setObject(json);
session.createSender(queue).send(objectMessage);
session.close();
connection.close();
}catch(Exception e){
e.printStackTrace();
}
}
在消費類代碼中,我想基礎上,JMSCorrelationID
特定的消息。我無法得到那個特定的信息。你能提出一個解決方案嗎?
public void getSpecificMessage(String queuename, Integer userid) {
try {
QueueConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
((ActiveMQConnectionFactory) connectionFactory).setUseAsyncSend(true);
QueueConnection connection = connectionFactory.createQueueConnection();
connection.start();
QueueSession session = connection.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
String id = String.valueOf(userid);
Queue queue = session.createQueue(queuename);
QueueReceiver receiver = session.createReceiver(queue, "JMSCorrelationID="+id);
Message message = receiver.receive();
} catch (JMSException e) {
e.printStackTrace();
}
}
我認爲你發佈代碼時犯了一個錯誤......第一個代碼塊不正確。你可以點擊你問題下面的'編輯'鏈接來糾正你的問題。 –