使用“请求-答复”关联消息

可通过两种方法使 IBM WebSphere MQ 的 BizTalk 业务流程中的消息相关,IBM WebSphere MQ 是 Windows 平台请求-答复方案的服务器组件。 第一个方法是将 MessageID (MQMD_MSGID) 和 CorrelationID (MQMD_CorrelId) 设置为相同的值来提供相关标识符。 第二种是使用 BizTalk_CorrelationId 上下文属性。

将 MQMD_MsgId 和 MQMD_CorrelId 设置为相同值

将消息发送到 IBM WebSphere MQ 队列管理器时,可以将消息标识符 (MQMD_MSGID) ,并将相关标识符 (MQMD_CorrelId) 设置为传出消息中的相同值。 IBM WebSphere MQ 队列管理器会将消息 ID 复制到答复消息的相关 ID。 下图显示了该过程。

Simple Correlation

可以使用 MQMD_CorrelId的值初始化传出消息的相关集,并遵循传入消息的相关集。

使用 MQSeries.BizTalk_CorrelationId 上下文属性

可以将 BizTalk_CorrelationID 上下文属性与 MQSeries 适配器的请求响应发送端口配合使用,而不是将 MessageID 和 CorrelationID 设置为传出消息中的相同值。 下图显示了这个过程。

Using Solicit-Response to generate CorrelationID

若要将 IBM WebSphere MQ 服务器提供的标识符用于 BizTalk 业务流程中的相关,则 BizTalk Server 必须先获得该标识符。 应用程序可通过要求-响应请求来执行此操作。 通过使用 MQSeries 适配器,BizTalk Server 可向 IBM WebSphere MQ 服务器发送要求-响应请求。 返回时,它会收到消息标识符 (MQMD_MSGId ) 响应,以及相关标识符 (MQMD_CorrelId) 。

对于请求响应发送端口中的传出消息,适配器会将 IBM WebSphere MQ Server 生成的 MQMD_MSGID 复制到 MQSeries.BizTalk_CorrelationId 上下文属性。

接收消息时,适配器会将 MQMD_CorrelId 复制到 MQSeries.BizTalk_CorrelationId。 在这种情况下,使用相关集,可以初始化传出消息的相关集,并使用 MQSeries.BizTalk_CorrelationId跟踪传入消息的相关集。

另请参阅

MQSCorrelationSetOrchestrationWithSolicitResponse(BizTalk Server 示例)