本主题包含以下部分:
使用 MQInput 节点从使用 WebSphere MQ 企业传输方式 连接到代理,并且使用 MQI 和 AMI 应用程序编程接口的客户机接收消息。
MQInput 节点从代理的队列管理器上定义的 WebSphere MQ 消息队列接收到消息流的消息输入。该节点使用 MQGET 从指定的队列读消息,并为消息建立处理环境。如果适当,可以将输入队列定义为 WebSphere MQ 集群队列或共享队列。
处理跨越 WebSphere MQ 连接接收到的消息的消息流必须始终以 MQInput 节点开始。您可以设置 MQInput 节点的属性来控制接收消息的方法,这可以通过设置相应的 MQGET 选项来实现。例如,您可以表明要在事务控制下处理消息。您还可以请求在接收每条输入消息时执行数据转换。
MQInput 节点处理以下消息域中的消息:
如果您在以 MQInput 节点开始的消息流中包含了一个输出节点,则它可以是任何受支持输出节点,包括用户定义的输出节点;不必包含 MQOutput 节点。 您可创建从 WebSphere MQ 客户机接收消息并为使用任何受支持传输连接到代理的客户机生成消息的消息流,因为您可以配置消息流以请求代理提供任何必要的转换。
如果您创建将用作子流的消息流,则无法使用标准输入节点;必须使用输入节点的实例作为第一个节点来为子流创建 in 终端。
如果消息流不通过 WebSphere MQ 连接接收消息,则您可以选择某个受支持的输入节点。
MQInput 节点在工作台中由以下图标表示:
当您将 MQInput 节点的实例放入消息流后,便可对它进行配置。右键单击编辑器视图中的节点,然后单击属性。 将在属性对话框中显示节点的基本属性。
对于所有没有定义缺省值的必需属性,在属性对话框上都会用星号作标记。
如下所示配置 MQInput 节点:
<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、MIME、BLOB 和 IDOC 解析器的消息类型保留为空白。
将 XML、XMLNS、XMLNSC、JMS、MIME 和 BLOB 解析器的消息格式保留为空白。
有关该选项的详细信息,请参阅配置节点以处理消息组。
如果您清除复选框,则不会按预先确定的顺序接收作为组的一部分发送的消息。如果代理要求接收组中的消息并且未选中该复选框,则输入消息的顺序不重要,或必须设计消息流来适当处理它们。
如果要仅在完成接收和处理了组的最终消息后落实消息处理,则选中由消息组落实复选框。
有关此属性映射到的选项的更多信息,在 WebSphere MQ Application Programming Reference 中提供。
有关该选项的详细信息,请参阅配置节点以处理消息组。
有关此属性映射到的选项的更多信息,在 WebSphere MQ Application Programming Reference 中提供。
输入最大到 48 位的十六进制数的偶数(字符 0 到 9、A 到 F 和 a 到 f 有效)。如果您输入的标识短于 MsgId 字段的大小,则标识右边以 X'00' 字符填充。 这映射到 MQI 的 MQGMO 的 MQMO_MATCH_MSG_ID 选项。
当您不要输入节点检查消息标识是否匹配时,将此属性保留为空白。
有关此属性映射到的选项的更多信息,在 WebSphere MQ Application Programming Reference 中提供。
输入最大到 48 位的十六进制数的偶数(字符 0 到 9、A 到 F 和 a 到 f 有效)。如果您输入的标识短于 CorrelId 字段的大小,则标识右边以 X'00' 字符填充。 这映射到 MQI 的 MQGMO 的 MQMO_MATCH_CORREL_ID 选项。
当您不要输入节点检查消息标识是否匹配时,将此属性保留为空白。
有关此属性映射到的选项的更多信息,在 WebSphere MQ Application Programming Reference 中提供。
WebSphere MQ 将入局消息转换为在 MQMD中指定的正在编码和已编码的字符集,输入节点在 MQGET 调用上提供 MQMD 以从输入队列检索消息。消息流使用这些值来生成其所有的输出消息,并用这些在 MQMD 中设置的正在编码和已编码的字符集标识的值将消息放入目标队列。
此属性映射到 MQI 的 MQGMO 的 MQGMO_CONVERT 选项。
如果不要 WebSphere MQ 转换消息,则清除复选框。
如果您选择此框,则同样指定:
如果您不指定值,则使用入局消息 MQMD 中的值。
如果您指定了无效值,则没有完成转换。
如果您不指定值,则使用入局消息 MQMD 中的值。
如果您指定了无效值,则没有完成转换。
有关 WebSphere MQ 数据转换的更多信息,以及您可能选择使用该选项的原因,请参阅WebSphere MQ Application Programming Guide。 有关可为转换编码和转换编码的字符集标识所指定的值的更多信息,请参阅 WebSphere MQ Application Programming Reference。
仅当您已选择逻辑顺序时该属性才相关。
如果组中的消息必须按消息在队列上出现的顺序进行检索和处理,则将排序方式属性设置为按队列顺序。
为序列化标记输入的值必须符合 WebSphere MQ Application Programming Reference 值描述的规则。
有关 z/OS 上序列化和队列共享的更多信息,请参阅 WebSphere MQ Concepts and Planning Guide。
有关更多详细信息,请参阅验证消息和MRM 域中消息的验证属性。
单击取消以关闭对话框,并废弃对属性所作的所有更改。
MQInput 将它成功获取的每个消息都路由到 out 终端。如果该操作失败,则重试消息。如果重试超时到期(如输入队列的 BackoutThreshold 属性所定义的那样), 则消息路由到 failure 终端;您可通过将节点与此终端相连来处理这情况。如果您未连接 Failure 终端,则消息会写入回退队列。
如果消息是已经在消息流中进一步抛出异常后由节点捕捉到的,则将该消息路由到 catch 终端。如果没有连接 catch 终端,则消息通过节点持续循环直至问题解决。您必须定义回退队列或死信队列(DLQ),继续通过节点阻止消息循环。
当您将 MQInput 节点包含在消息流中时,您为事务方式设置的值会定义是否在同步点下接收消息:
(MQOutput 节点是您可以配置为覆盖此选项的唯一输出节点。)
WebSphere MQ 支持消息组;您可指定消息属于某个组以及组中该消息的处理以及所有其他消息的处理必须作为一个事务处理。即,如果组中对一个消息的处理失败,则回退组中所有消息。仅当所有消息的处理都已成功完成,才会在组中最后一个消息处理成功后落实消息处理。
如果在组中包含消息,且组内所有消息都需要从队列读取并按它们在组中定义的顺序进行处理,则必须如下所述完成所有操作:
您还必须确保没有其他消息流正在从相同输入队列检索消息。如果由消息流正在检索,则不保证消息在组内处理的顺序。
下表描述 MQInput 节点的终端。
终端 | 描述 |
---|---|
Failure | 如果发生错误,则这是消息路由到的输出终端。即使设置了“验证”属性,也不验证传播到此终端的消息。 |
Out | 如果从 WebSphere MQ 队列成功检索到消息,则这就是消息路由到的输出终端。 |
Catch | 如果下游抛出异常并由此节点捕获,则这是消息路由到的输出终端。 |
下表描述该节点的属性;标题为 M 的列表示属性是否是必需的(如果在未定义缺省值时必须输入值,则在属性对话框上以星号作标记),标题为 C 的列表示属性是否是可配置的(将消息流添加到 BAR 文件以部署此文件时可以更改该值)。
下表描述 MQInput 节点的“基本”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
队列名 | 是 | 是 | WebSphere MQ 输入队列的名称,该节点从该输入队列检索由该消息流处理的消息(使用 MQGET)。 |
下表描述 MQInput 节点的“缺省”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
消息域 | 否 | 否 | 用于解析入局消息的域。 | |
消息集 | 否 | 否 | 定义入局消息的消息集的名称或标识。 | |
消息类型 | 否 | 否 | 入局消息的名称。 | |
消息格式 | 否 | 否 | 入局消息物理格式的名称。 | |
主题 | 否 | 是 | 输入消息的缺省主题。 |
下表描述 MQInput 节点的“高级”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
事务方式 | 是 | 否 | 是 | 是否在同步点下接收入局消息。 有效值为自动、是和否。 |
排序方式 | 是 | 否 | 缺省值 | 从输入队列检索以及处理消息的顺序。有效值为缺省、按用户标识和按队列顺序。 |
逻辑顺序 | 是 | 否 | 选中 | 是否按逻辑顺序接收消息,如 WebSphere MQ 定义的那样。如果您选中该复选框,则执行此操作。 |
所有消息都可用 | 是 | 否 | 已清除 | 如果您选中该复选框,则组中的所有消息在可检索消息之前必须可用。 |
匹配消息标识 | 否 | 否 | 消息标识,必须与入局消息的 MQMD 中的消息标识相匹配。 | |
匹配相关标识 | 否 | 否 | 相关标识,必须与入局消息的 MQMD 中的相关标识相匹配。 | |
转换 | 是 | 否 | 已清除 | WebSphere MQ 是否与 MQMD 中编码字符集标识和编码值集一样在要检索的消息中执行数据转换。如果您选中该复选框,则执行此操作。 |
转换编码 | 否 | 否 | 用于消息数据中数值的表示,作为整数值表示。仅当您已经选中转换复选框时,此属性才有效。 | |
转换编码字符集标识 | 否 | 否 | 消息数据中字符数据的编码字符集标识,作为整数值表示。仅当您已经选中转换复选框时,此属性才有效。 | |
由消息组落实 | 是 | 否 | 已清除 | 处理属于消息组的消息时,何时落实事务。如果您选中该复选框,则在完成消息组处理后落实事务。 |
z/OS 序列化标记 | 否 | 否 | 用于提供序列化应用程序支持的用户定义的标记。 所指定的值必须符合 WebSphere MQ MQCNO 结构中有效 ConnTag 的规则。WebSphere MQ Application Programming Reference 中对这些规则进行了描述。 |
下表描述 MQInput 节点的“验证”属性。
请参阅MRM 域中消息的验证属性,以获取这些属性的完整描述。属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
验证 | 是 | 是 | 无 | 验证是否发生。有效值为无、内容和内容和值。 |
故障操作 | 是 | 否 | 异常 | 验证失败后将发生什么操作。只有将验证设置为内容或内容和值,才可以设置该属性。有效值为用户跟踪、本地错误日志、异常和异常列表。 |
包含所有值约束 | 是 | 否 | 选中 | 无法编辑此属性。所选的复选框指出的缺省操作,即内容和值验证中包含的基本值约束检查。 |
固定 | 是 | 否 | 无 | 无法编辑此属性。 |
下表描述 MQInput 节点的“一般消息选项”的属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
解析计时 | 是 | 否 | 按需解析 | 该属性使您可控制何时解析输入消息。有效值为按需解析、立即解析和完全解析。 请参阅按需解析,以获取此属性的完整描述。 |
将 MQRFH2C 压缩解析器用于 MQRFH2 域 | 是 | 否 | 否 | 该属性使您可控制是否对 MQRFH2 头中使用 MQRFH2C 压缩解析器,而不是 MQRFH2 解析器。 |
下表描述 MQInput 节点的“XMLNSC 解析器选项”的属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
将 XMLNSC 压缩解析器用于 XMLNS 域 | 是 | 已清除 | 否 | ![]() ![]() |
混合内容保留方式 | 是 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的混合文本时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为混合文本创建元素。选择无表示忽略混合文本并且不创建元素。 |
注释保留方式 | 是 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的注释时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为注释创建元素。选择无表示忽略注释并且不创建元素。 |
处理指令保留方式 | 是 | 否 | 无 | 此属性控制当 XMLNSC 解析器遇到输入消息中的处理指令时,是否使用该解析器创建消息树中的元素。有效值为无和全部。选择全部表示为处理指令创建元素。选择无表示忽略处理指令并且不创建元素。 |
下表描述 MQInput 节点的“描述”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
简短描述 | 否 | 否 | 节点的简要描述。 | |
详细描述 | 否 | 否 | 描述消息流中节点用途的文本。 |