用于异步消息发送的JmsCorrelationId

时间:2013-02-14 23:25:38

标签: java jms

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

1 个答案:

答案 0 :(得分: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();}
}