有两种方法可以关联 BizTalk Server 业务流程中的消息,以用于 MQSeries 请求-回复方案。 第一种方法是将 MessageID (MQMD_MsgID) 和 CorrelationID (MQMD_CorrelationID) 都设置为相同的值来提供相关标识符。 第二种是使用BizTalk_CorrelationId上下文属性。
将消息发送到 MQSeries 队列管理器时,可以将消息标识符(MQMD_MsgID)和关联标识符(MQMD_CorrelationID)设置为传出消息中的相同值。 MQSeries 队列管理器将 MessageID 复制到回复消息的 CorrelationID。 可以使用 MQMD_CorrelationID 的值初始化传出消息的关联集,并遵循传入消息的关联集。
或者,您可以不用在传出消息中将 MessageID 和 CorrelationID 设置为相同值,而是将 BizTalk_CorrelationID 上下文属性与用于 MQSeries 的 BizTalk 适配器中的请求-响应发送端口结合使用。
若要使用 MQSeries 服务器提供的标识符进行 BizTalk 业务流程中的关联,BizTalk Server 必须先获取标识符。 您的应用程序通过请求-响应请求进行此功能。 BizTalk Server 使用 MQSC 适配器向 MQSeries 服务器发送一个请求并期待响应。 在返回中,它接收包含消息标识符(MQMD_MsgId)和关联标识符(MQMD_CorrelationId)的响应。
对于请求响应发送端口中的传出消息,适配器会将 MQSeries 生成的MQMD_MsgID复制到MQSeries.BizTalk_CorrelationId上下文属性。
接收消息时,适配器会将MQMD_CorrelationId复制到MQSeries.BizTalk_CorrelationId。 在这种情况下,使用相关集,可以初始化传出消息的相关集,并使用MQSeries.BizTalk_CorrelationId跟踪传入消息的相关集。