创建JMS关联ID

时间:2010-11-04 21:08:20

标签: jms

通常不鼓励使用从JMS提供程序返回的消息ID作为消息发布到队列的相关ID。人们如何为请求/响应架构生成相关ID?

2 个答案:

答案 0 :(得分:2)

客户端可以使用UUID等唯一ID标准生成新ID。 Here对你来说是个很好的教程。

您可以使用以下代码从JMS提供程序返回相关ID。

message.setJMSCorrelationID(UUID.randomUUID().toString());
producer.send(message);
LOG.info("jms-client sent:" + message.getJMSCorrelationID());  

干杯。

答案 1 :(得分:1)

服务器端相关ID生成遇到两个问题:

  1. 单向协议(如JMS)没有直接返回的方法 相关ID返回给客户端。可以使用另一个频道但是 这使事情变得复杂。

  2. 意外问题可能会阻止客户端接收 即使请求已被接受,也会生成ID 在服务器上处理。这就是客户端ID生成的原因 被视为。

  3. 客户端生成的相关ID

    客户端可以使用唯一的ID标准(如UUID)生成新ID

      message.setJMSCorrelationID(UUID.randomUUID().toString());
    

    参考:http://blogs.mulesoft.com/dev/anypoint-platform-dev/total-traceability/