本页介绍了 MQGet 节点在请求-响应流中的使用,描述了节点如何处理输入消息(根据 LocalEnvironment 和您设置的输入参数)以构造输出消息。
两个应用程序之间的请求-响应流允许其中一个应用程序从另一个应用程序请求消息。 下图中显示了此类流:
在该图中,请求应用程序将一条消息放置到应答应用程序的“请求”输入队列。 应答应用程序然后处理消息,并将一条应答发送到来自请求应用程序的原始消息中指定的“应答”队列。
如果要替换或者增强其中一个 应用程序,而不更改另一个,那么需要在这两个应用程序之间变换消息。 要做到这点,可以在它们之间插入代理,如下图所示:
既然配置了一个队列别名或类似的设备,那么请求应用程序会将其请求消息放到“协调的请求应答”代理消息流的输入队列中。在 前面的示例中,将此消息直接放到了应答应用程序的输入队列中。 “协调的请求应答”流将消息变换到适用于应答应用程序的格式,并将其传递到其输入队列。 它还保存原始的请求应用程序的应答队列详细信息,并将这些详细信息恢复到从应答应用程序接收到的应答消息,从而使应答消息能正确地公布回请求应用程序。
MQGet 节点可放在流中的任何位置,并在其输入终端上接收从前面节点传播来的输入树。 它然后使用从配置的 WebSphere MQ 队列检索到的消息来构建结果树。 最后,它使用输入树和结果树构建一个输出树,然后将输出树传播到其输出、警告或失败终端,具体是哪个终端则取决于节点的配置以及 Get 操作的结果。
有关构造流的更多详细信息,请参阅样本:协调请求应答样本。
从前面节点传播而来的 LocalEnvironment 由 MQGet 节点读取和更新。
${inputMQParmsLocation} 是在请求属性选项卡上 MQGet 节点属性输入 MQ 参数位置中设置的值。
${outputMQParmsLocation} 是在结果属性选项卡上 MQGet 节点属性输出 MQ 参数位置中设置的值。
有关这些属性的详细信息,请参阅MQGet 节点。
下图略为详细地显示了 MQGet 节点如何构造 MQMD,以用在对 WebSphere MQ 的调用上:
下图概述了如何通过将来自先前节点的输入树,与来自 MQGet 调用的结果树组合而构造输出消息树:
下面的一些示例将显示如何根据上述规则构造消息树。
具有与以下类似的消息套件: | MQGet 返回的消息是: |
---|---|
|
![]()
![]() |
具有以下设置: | 生成的结果输出消息套件是: |
---|---|
|
|
|
此树是执行从 ${resultDataLocation} 到 ${outputDataLocation} 的分配时的有效结果。复制 源元素的值,如同都是包含属性的子代一样。 |
|
此树具有用于 OutputLocalEnvironment 中的 get 的 MQMD,因为输入 MQ 参数位置在其下面有一个 MQMD 元素。 即时未复制输入树,但 MQMD 元素的存在造成了用于 get 的 MQMD 要放置在输出树中。 |
|
这种情况下 copyMessage 的设置对最终输出树不产生影响。 |