我有一个由BPEL流程处理的Web服务请求。此BPEL流使用MQ JMS导入绑定将此消息放入队列。它还包含响应队列信息。我需要将自定义correlationID或JMSMessageID值设置为CorrelationID,以便BPEL流可以将响应与请求相关联。如果您有任何想法,请建议。
答案 0 :(得分:0)
JMSMessageID应该由应用程序设置不。如果已设置,则在发送消息期间,将忽略该消息。当send方法返回时,JMSMessageID将被设置为JMS Provider分配的值。收到消息后,将为提供者分配唯一值。注意JMSMessageID是唯一的。
Quoting from JMS 1.1 Specs:
客户端可以使用JMSCorrelationID标头字段将一条消息与另一条消息链接起来。典型的用途是将响应消息与其请求消息链接。由于JMS提供程序发送的每条消息都分配了消息ID值,因此通过消息ID链接消息很方便。所有邮件ID值必须以“ID:”前缀开头。
在某些情况下,应用程序(由多个客户端组成)需要使用特定于应用程序的值来链接消息。例如,应用程序可以使用JMSCorrelationID来保存引用某些外部信息的值。应用程序指定的值不得以“ID:”前缀开头;这是为提供者生成的消息ID值保留的。
要设置JMSCorrelationID,应用程序需要使用String参数调用setJMSCorrelationID
类的JMSMessage
方法。