有两种方法可以关联 IBM WebSphere MQ 的 BizTalk 业务流程中的消息,这是适用于 Windows 平台请求-回复方案的服务器组件。 第一种方法是将 MessageID(MQMD_MSGID)和 CorrelationID(MQMD_CorrelId)设置为相同的值来提供相关标识符。 第二种是使用 BizTalk_CorrelationId 上下文属性。
将MQMD_MsgId和MQMD_CorrelId设置为“相同”值
将消息发送到 IBM WebSphere MQ 队列管理器时,可以将消息标识符(MQMD_MSGID)和关联标识符(MQMD_CorrelId)设置为传出消息中的相同值。 IBM WebSphere MQ 队列管理器将 MessageID 复制到 CorrelationID,以用于回复消息。 下图显示了该过程。
可以使用 MQMD_CorrelId的值初始化传出消息的相关集,并遵循传入消息的相关集。
使用 MQSeries.BizTalk_CorrelationId Context 属性
可以在 MQSeries 适配器的请求响应发送端口中使用 BizTalk_CorrelationID 上下文属性,而不是将 MessageID 和 CorrelationID 设置为相同的值。 下图显示了此过程。
若要使用 IBM WebSphere MQ Server 提供的标识符进行 BizTalk 业务流程中的关联,BizTalk Server 必须先获取标识符。 您的应用程序通过请求-响应请求进行此功能。 BizTalk Server 使用 MQSeries 适配器向 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 示例)