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