MRM 域中消息的验证属性

可以通过设置以下节点上显示在“验证”选项卡和“一般消息选项”选项卡中的属性来控制验证:

节点类型 有验证选项的节点
输入节点 MQInput、SCADAInput、HTTPInput、JMSInput 和 TimeoutNotification
输出节点 MQOutput、MQReply、SCADAOutput、HTTPReply 和 JMSOutput
其他节点 Compute、Mapping、JavaCompute、Validate、ResetContentDescriptor、MQGet 和 HTTPRequest

有关代理中消息验证的概述,请参阅验证消息

可以设置以下验证属性:
选项卡 影响验证的属性
验证 验证、故障操作、包含所有值约束以及修改
一般消息选项 解析计时

“验证”选项卡属性

验证

设置是否需要验证。所有节点都提供以下选项:

缺省值。不执行任何验证。
内容
表示要执行内容检查,如“内容验证”和“组合”。
内容和值
表示要执行内容检查(如“内容验证”和“组合”)和值检查(如值是否符合数据类型、长度、范围和枚举)。

某些节点还提供以下选项:

继承
对于该节点上提供的任何选项,指示节点优先使用随输入消息树提供的所有验证选项。因此,“继承”将解析为内容内容和值中的一个。如果选择“继承”,选项卡上的其他验证属性将变灰。

故障操作

发生验证失败时要执行的操作。可以将它设置为以下值:

异常
缺省值。遇到第一次验证失败时抛出异常。生成的异常列表如下所示。如果已经要求对消息流进行用户跟踪,则还会在用户跟踪中记录失败,且验证停止。如果希望一遇到失败就挂起消息处理,可使用此设置。

将故障操作设置为“异常”时的异常列表

异常列表
遇到验证失败时抛出异常,但只在当前解析或写操作完成后抛出。生成的异常列表如下所示。如果已经要求对消息流进行用户跟踪,则还会在用户跟踪中记录每次失败,且验证停止。如果希望在发生验证失败时挂起消息处理,但又要查看所遇失败的完整列表,可使用此设置。请注意,此属性受“解析计时”属性的影响;当选择部分解析时,当前解析操作将只解析输入消息的某个部分,因此只有在该部分消息中的验证失败才会被报告。

将故障操作设置为“异常列表”时的异常列表

用户跟踪
将所有的验证失败记录到用户跟踪中,即使您未要求对消息流进行用户跟踪。如果要不顾验证失败而继续处理消息,可使用该设置。
本地错误日志
将所有的验证失败记录到错误日志中(例如 Windows 上的事件日志)。如果要不顾验证失败而继续处理消息,可使用该设置。

包含所有值约束

此复选框是选中的。您无法更改此选项。

包含所有值约束指定当把验证解析为内容和值时,要对消息中各字段的值执行哪些基本值约束检查。执行的检查有:

  • 最小长度
  • 最大长度
  • 小数位数
  • 总计位数
  • 最小包含值
  • 最大包含值
  • 最小排除值(受支持时)
  • 最大排除值(受支持时)
  • 枚举
  • 模式

有关值约束的更多详细信息,请参阅简单类型逻辑值约束

修改

缺省值为无。您无法更改它。

指定当验证解析为内容内容和值并出现验证失败时,不执行任何额外的补救操作。执行的补救操作取决于故障操作的设置。

如果故障操作设置为用户跟踪本地错误日志,则如验证消息中所述,补救操作仅限于不执行任何验证时发生的缺省补救操作:

  1. 对于固定格式(仅 CWF 和 TDS 固定长度模型)会在输出时废弃无关的字段
  2. 如果缺少必需的内容,则在输出时会为固定格式(仅 CWF 和 TDS 固定长度模型)提供缺省值(如果可用)
  3. 如果树中的元素数据类型与字典中指定的类型不匹配,则数据类型会在输出时进行转换以便与所有格式的字典定义匹配(如果可能)。

如果故障操作设置为异常异常列表,则补救操作仅限于以上列表中的第三项,而为前两项抛出异常。

解析计时
“解析计时”属性只在以下节点上提供:
节点类型 包含“解析计时”属性选项的节点
输入节点 MQInput、MQGet、SCADAInput、HTTPInput、HTTPRequest、Real-timeInput、JMSInput、Compute JavaCompute、Mapping、ResetContentDescriptor 和 TimeoutNotification
其他节点 ResetContentDescriptor

解析计时属性确定解析消息时是否要使用按需解析。它还赋予您对 MRM 输入消息验证计时的控制权:

  • 如果选择“解析计时”值为“按需解析”,则消息中的字段将在被部分解析进行解析之后才会验证。
  • 如果选择“解析计时”值为“立即解析”,则覆盖部分解析,将解析并验证消息中的所有内容(除此时无法解析的那些 Choice 或 Message“组合”的复杂类型以外)。
  • 如果选择“解析计时”值为“完全解析”,则覆盖部分解析,将解析并验证消息中的所有内容。此时无法解析的那些 Choice 或 Message“组合”的复杂类型会导致验证失败。

如果打开 MRM 消息验证,并对“解析计时”选择“按需解析”或“立即解析”,则直到以后消息流处理消息时才可能检测到验证错误,或者如果从未解析某部分消息,则可能永远不会检测到验证错误。要确保验证消息中的所有字段,选择“完全解析”或“立即解析”,并确保在消息流开始时解析了所有未解析的 Choice 或 Message“组合”的类型。

“解析计时”属性对输出消息的验证没有任何影响。

相关概念
消息流概述
相关参考
内置节点
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac18870_