0

是否有任何 JMSCorrId 应设置的规范。我的应用程序只是将消息异步发送到队列,它并不关心等待任何确认。

4

1 回答 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 回答