是否有任何 JMSCorrId 应设置的规范。我的应用程序只是将消息异步发送到队列,它并不关心等待任何确认。
问问题
176 次
1 回答
0
当JMS客户端收到回复消息时,可以将新消息的JMSCorrelationID与其发送的消息对应的JMSMessageID进行匹配,从而知道哪条消息收到了回复。
JMSCorrelationID 可以是任何值,而不仅仅是 JMSMessageID。
例如,您可以使用 JMSCorrelationID 来识别发件人。
如果您决定使用自己的 ID,请注意您不应使用 ID: 启动特定于应用程序的 JMSCorrelationID。该前缀是为 JMS 提供程序生成的 ID 保留的。
通常实现:
public void onMessage(Message message){
try {
TextMessage textMessage = (TextMessage)message;
Queue replyQueue = (Queue)textMessage.getJMSReplyTo();
Message replyMessage = session.createMessage();
replyMessage.setJMSCorrelationID(message.getJMSMessageID());
sender.send(replyQueue, replyMessage);
} catch (JMSException jmse){jmse.printStackTrace();}
}
于 2013-02-15T00:01:09.913 回答