客户端可以使用JMSCorrelationID头字段关联一个消息到另一个消息。
客户端可以使用的JMSCorrelationID头字段与另一个连接一个消息。典型的用法是关联一个响应消息到它对应的请求消息。
JMSCorrelationID可以使用如下几种值:
由于通过JMS提供者发送的每条消息都分配有一个消息ID值,所以可以很方便地通过消息ID来关联消息。所有的消息ID值必须以“ID:”作为前缀。
在某些情况下,应用程序(由多个客户端组成的),需要使用应用特定的值关联消息。例如,一个应用程序可以使用JMSCorrelationID的值引用一些外部信息。应用程序指定的值必须不能使用“ID:”的前缀;这个前缀是为提供者生成的消息ID值保留的。
如果一个提供者支持相关ID(correlation ID)的原生概念,JMS客户端可能需要使用特定的JMSCorrelationID值,以满足那些期望使用它的非JMS客户端。为了这个目的,我们可以为JMSCorrelationID使用一个byte []类型的值。没有原生的相关ID值的JMS提供者不要求支持byte[]类型的JMSCorrelationID值1。使用byte []类型的JMSCorrelationID值是不可移植的。
注1:方法 setJMSCorrelationIDAsBytes()和getJMSCorrelationIDAsBytes()的实现可能抛出java.lang.UnsupportedOperationException异常。