本主题包含以下部分:
使用 MQGet 节点可以从使用 WebSphere MQ 企业传输方式 连接到代理的客户机以及使用 MQI 和 AMI 应用程序编程接口的客户机接收消息。MQGet 节点还可以用于检索先前放置在定义为代理队列管理器的 WebSphere MQ 消息队列中的消息。
MQGet 节点从指定的队列读取消息,并为该消息建立处理环境。如果适当,可以将输入队列定义为 WebSphere MQ 集群队列或共享队列。
MQGet 节点可以在消息流中的任何位置使用,不像 MQInput 节点,只能作为消息流的第一个节点使用。从 MQGet 节点输出的输出消息树是通过将输入树和来自 MQGET 调用的结果树结合而构造的。您可以设置 MQGet 节点的属性来控制接收消息的方式。例如,您可以指示在事务控制下处理消息,或者可以要求在结果树创建时,当收到每条输入消息时都执行数据转换。
MQGet 节点处理以下消息域中的消息:
MQGet 节点在工作台中由以下图标表示:
将 MQGet 节点的实例放入消息流中后,可以对其进行配置。
右键单击编辑器视图中的节点,然后单击属性。节点的“基本”属性将显示在属性对话框中。
在属性对话框中,所有必要属性都以星号标记。
通过执行以下操作,配置 MQGet 节点:
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type> <Fmt>XML</Fmt></mcd>
如果您设置值,且所设置的值与 MQRFH2 头中的那些值不同,则优先使用 MQRFH2 头中的值。
将 XML、XMLNS、XMLNSC、JMS、MIME 和 BLOB 解析器的消息集保留为空白。
将 XML、XMLNS、XMLNSC、JMS、IDOC、MIME 和 BLOB 解析器的消息类型保留为空白。
将 XML、XMLNS、XMLNSC、JMS、MIME 和 BLOB 解析器的消息格式保留为空白。
有关更多详细信息,请参阅验证消息和MRM 域中消息的验证属性。
您可以输入任何有效的 ESQL 字段引用(此引用可以包含表达式),包括新字段引用,以在消息树中创建新节点,从而将响应插入到从输入树传播的消息中。
例如,OutputRoot.XMLNS.ABC.DEF 和 Environment.GotReply 都是有效的字段引用。请参阅在请求-响应流中使用 MQGet 节点,获取更多详细信息。
当解析所检索消息二进制位串来创建消息树的内容时,将使用您已指定为节点缺省属性的消息属性。
您可以输入任何有效的 ESQL 字段引用(请参阅输出数据位置属性的描述)。在此位置放置的数据始终是完整的结果树,其主体为 BLOB 元素。对警告数据不使用结果数据位置。
如果将该选项更改为立即解析,则将覆盖部分解析,并且除此时无法解析的那些 Choice 或 Message“组合”的复杂类型以外,会解析并验证消息中的所有内容。如果将该选项更改为完全解析,则将覆盖部分解析,并且会解析并验证消息中的所有内容;此时无法解析的 Choice 或 Message“组合”的复杂类型会导致验证失败。
有关更多详细信息,请参阅MRM 域中消息的验证属性。
如果要使用 MQRFH2C 解析器,则选中使用 MQRFH2C 压缩解析器复选框。缺省情况下,此复选框是清除的,这表示不使用该压缩解析器。
有关更多信息,请参阅使用 XMLNSC 解析器处理消息。
单击取消以关闭对话框,并废弃对属性所作的所有更改。
如果要进一步处理消息、处理错误或将消息发送到其他目标,请将此节点的 Out、Warning、Failure 和 No Message 输出终端连接到消息流中的另一个节点。
传播到每个输出终端的内容取决于 MQGET 调用生成的条件代码(CC)。
如果 MQGET 调用成功,MQGet 节点将把每个解析的输出消息路由到 Out 终端。
如果 MQGET 调用失败,但带有表示警告的 CC,则将未经解析的输出消息传播到 Warning 终端。
如果 MQGET 调用失败,带有比警告更严重的 CC,则将输入消息传播到 Failure 终端。
如果MQGET 调用失败,带有原因码 MQRC_NO_MSG_AVAILABLE,则将输出消息(不带结果体)传播到 No Message 终端。传播到 No Message 终端的输出消息是根据“产生方式”和“复制消息”或“复制本地环境”属性的值,仅从输入消息构造的。
如果没有将 Out、Warning 或 No Message 终端连接到消息流中的另一个节点,则传播到那些终端的所有内容将废弃。
如果没有将 Failure 终端连接到消息流中的另一个节点,则向该终端传播任何内容时,代理将抛出异常。
请参阅连接 failure 终端,获取更多信息。
在消息流中包含 MQGet 节点时,您为事务方式设置的值将定义是否在同步点下接收消息:
下表中描述了 MQGet 节点的终端。
终端 | 描述 |
---|---|
In | 接受消息流正在处理的消息的输入终端。 |
Warning | 输出终端:如果在尝试从队列获取消息时在节点内发生错误(带有表示警告的 CC),则将输出树传播到此输出终端。消息的 MQMD 部分将被解析,但剩余部分的消息是未解析的 BLOB 元素。如果未连接该终端,则将废弃警告,而且根本没有来自该节点的任何输出传播。 |
Failure | 输出终端:如果在尝试从队列获取消息时在节点内发生错误(带有表示比警告更严重错误的 CC),则将输入消息路由到此输出终端。 |
Out | 如果从 WebSphere MQ 队列成功检索到消息,则这就是消息路由到的输出终端。 |
No Message | ![]() ![]() |
下表描述该节点的属性;标题为 M 的列表示属性是否是必需的(如果必须输入值,则在属性对话框上以星号作标记),标题为 C 的列表示属性是否是可配置的(将消息流添加到 BAR 文件以部署此文件时可以更改该值)。
下表中描述了 MQGet 节点的基本属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
队列名 | 是 | 是 | 无 | 此节点从中检索消息的 WebSphere MQ 消息队列的名称。 |
下表中描述了 MQGet 节点的缺省属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
消息域 | 否 | 否 | 无 | 将用来解析从消息队列获取的消息的域。 |
消息集 | 否 | 否 | 无 | 消息集的名称或标识,在该消息集中定义了从消息队列获取的消息。 |
消息类型 | 否 | 否 | 无 | 从消息队列获取的消息的名称。 |
消息格式 | 否 | 否 | 无 | 从消息队列获取的消息的物理格式名称。 |
下表中描述了 MQGet 节点的高级属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
事务方式 | 否 | 否 | 是 | 是否在同步点下接收入局消息。有效值为自动、是和否。 |
生成方式 | 否 | 否 | 消息 | 从输入树复制消息的哪些部分。有效值为消息、LocalEnvironment、消息和 LocalEnvironment 和无。 |
复制消息 | 否 | 否 | 无 | 从输入树复制消息的哪些部分。有效值为无、复制头和复制整个消息。 |
复制本地环境 | 否 | 否 | 从输入树复制消息的哪些部分。有效值为无和复制整个 LocalEnvironment。缺省值是 复制整个本地环境。 | |
等待时间间隔 | 是 | 否 | 1000 | 从消息队列获取消息要等待的最长时间(以毫秒为单位)。 |
最小消息缓冲区大小 | 是 | 否 | 4 | 获取缓冲区的最小大小(以千字节为单位)。此属性的最小值为 1 千字节。 |
下表中描述了 MQGet 节点的验证属性。
请参阅MRM 域中消息的验证属性,以获取这些属性的完整描述。属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
验证 | 否 | 是 | 无 | 验证是否发生。有效值为 无、内容、内容和值和继承。 |
故障操作 | 否 | 否 | 异常 | 验证失败后将发生什么操作。只有将验证设置为内容或内容和值,才可以设置该属性。有效值为用户跟踪、本地错误日志、异常和异常列表。 |
包含所有值约束 | 否 | 否 | True | 无法编辑此属性。所选的复选框指出的缺省操作,即内容和值 验证中包含的基本值约束检查。 |
修改 | 否 | 否 | 无 | 无法编辑此属性。 |
下表中描述了 MQGet 节点的请求属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
输入 MQMD 位置 | 否 | 否 | 指定在输入消息集合中,可以在何处找到要用于 MQGET 的 MQMD。缺省位置是 InputRoot.MQMD。 | |
输入 MQ 参数位置 | 否 | 否 | 指定在输入消息集合中,可以在何处找到 MQ 参数(例如初始缓冲区大小和 MQGET 覆盖)。缺省位置是 InputLocalEnvironment.MQ.GET。 | |
通过相关标识获取 | 否 | 否 | False | 如果选中此复选框,将导致仅获取具有指定相关标识的消息。 |
通过消息标识获取 | 否 | 否 | False | 如果选中此复选框,将导致仅获取具有指定消息标识的消息。 |
使用完整的输入 MQMD | 否 | 否 | False | 如果选中此复选框,将导致使用完整的 MQMD。否则,将仅使用消息标识和相关标识。 |
下表中描述了 MQGet 节点的结果属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
输出数据位置 | 否 | 否 | OutputRoot | 指定放置输出数据的位置。如果为空,则使用 OutputRoot 作为缺省值。 |
结果数据位置 | 否 | 否 | ResultRoot | 指定要使用(所检索消息的)哪个子树。如果留空,则使用 ResultRoot 作为缺省值,并使用整个所检索消息。例如,如果指定了 ResultRoot.MQMD.ReplyToQ,则仅使用该子树。 |
输出 MQ 参数位置 | 否 | 否 | 指定放置输出 MQ 参数的位置。如果留空,则使用 OutputLocalEnvironment.MQ.GET 作为缺省值。应该将“生成方式”设置为包含 LocalEnvironment,来确保在下游节点中可以看见更新的值。缺省位置是 OutputLocalEnvironment.MQ.GET。 | |
警告数据位置 | 否 | 否 | OutputRoot | 指定 MQGET 返回警告代码时,放置输出数据的位置。如果为空,则使用 OutputRoot 作为缺省值。 |
下表中描述了 MQGet 节点的“一般消息选项”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
解析计时 | 否 | 否 | 按需解析 | 该属性控制何时解析输入消息。有效值为按需解析、立即解析和完全解析。 请参阅按需解析,获取此属性的完整描述。 |
将 MQRFH2C 压缩解析器用于 MQRFH2 域 | 否 | 否 | False | 该属性控制 MQRFH2 头中是否使用 MQRFH2C 压缩解析器,而不是 MQRFH2 解析器。 |
下表中描述了 MQGet 节点的“XMLNSC 解析器选项”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
将 XMLNSC 压缩解析器用于 XMLNS 域 | 否 | 否 | False | ![]() ![]() |
混合内容保留方式 | 否 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的混合文本时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为混合文本创建元素。选择无表示忽略混合文本并且不创建元素。 |
注释保留方式 | 否 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的注释时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为注释创建元素。选择无表示忽略注释并且不创建元素。 |
处理指令保留方式 | 否 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的处理指令时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为处理指令创建元素。选择无表示忽略处理指令并且不创建元素。 |
下表中描述了 MQGet 节点的描述属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
简短描述 | 否 | 否 | 空白 | 节点的简要描述。 |
详细描述 | 否 | 否 | 空白 | 描述消息流中节点用途的文本。 |