如何使用 JMS Correlation ID 识别消息?
How do I identify a message using JMS Correlation ID?
如何使用 JMS 关联 ID 识别消息?我正在使用如下代码,但无法从队列中取出消息。该工具已确认队列中有一条在 PropertiesText 中设置了 JMSCorrelationID ='ID: 1234567'
的消息。怎么了?是否可以在为 JMSCorrelationID
指定的值中包含空格?
是否可以使用 'ID: 1234 ABC'
?
这样的值
发件人:
MessageProducer mproducer;
Session qSession;
...
String selectKey = "'' ID: 1234567'";
ObjectMessage msg = qSession.createObjectMessage (data);
msg.setJMSCorrelationID (selectKey);
mProducer.send (msg);
接收者
Session qSession;
...
String selectMsgKey = "JMSCorrelationID ='ID: 1234567'";
MessageConsumer mConsumer.createConsumer (queue, selectMsgKey);
mConsumer.receive (60000);
我使用 ActiveMQ Artemis。
相关 ID 中可以包含空格。我认为问题在于您在发件人中定义 selectKey
的方式。你那里有额外的 '
个字符。你应该简单地使用:
String selectKey = "ID: 1234567";
那么你的选择器应该可以工作了。
如何使用 JMS 关联 ID 识别消息?我正在使用如下代码,但无法从队列中取出消息。该工具已确认队列中有一条在 PropertiesText 中设置了 JMSCorrelationID ='ID: 1234567'
的消息。怎么了?是否可以在为 JMSCorrelationID
指定的值中包含空格?
是否可以使用 'ID: 1234 ABC'
?
发件人:
MessageProducer mproducer;
Session qSession;
...
String selectKey = "'' ID: 1234567'";
ObjectMessage msg = qSession.createObjectMessage (data);
msg.setJMSCorrelationID (selectKey);
mProducer.send (msg);
接收者
Session qSession;
...
String selectMsgKey = "JMSCorrelationID ='ID: 1234567'";
MessageConsumer mConsumer.createConsumer (queue, selectMsgKey);
mConsumer.receive (60000);
我使用 ActiveMQ Artemis。
相关 ID 中可以包含空格。我认为问题在于您在发件人中定义 selectKey
的方式。你那里有额外的 '
个字符。你应该简单地使用:
String selectKey = "ID: 1234567";
那么你的选择器应该可以工作了。