在 XML 文档中返回监视数据的接口

会将某些监视数据报告为 XML 文档中的元素。

通过使用 XML 来报告监视信息,提高了可扩展性和灵活性。可添加新监视元素而不必向输出表添加新列。此外,根据您的需要,可以采用多种方法来处理 XML 文档。例如:
  • 可以使用 XQuery 对 XML 文档运行查询。
  • 可以使用 XSLTRANSFORM 标量函数将文档变换为其他格式。
  • 可以通过使用内置 MON_FORMAT_XML_* 格式函数或者 XMLTABLE 表函数将 XML 文档的内容作为格式化文本来查看。
包含监视元素的 XML 文档由若干监视器接口产生。下列各节描述了如何将结果作为 XML 文档返回。

其名称以“_DETAILS”结尾的监视表函数

这些表函数的示例包括:
  • MON_GET_PKG_CACHE_STMT_DETAILS
  • MON_GET_WORKLOAD_DETAILS
  • MON_GET_CONNECTION_DETAILS
  • MON_GET_SERVICE_SUBCLASS_DETAILS
  • MON_GET_ACTIVITY_DETAILS
  • MON_GET_UNIT_OF_WORK_DETAILS
这些表函数将从系统和活动监视透视图中返回监视元素。这些函数所返回的大多数监视元素都包含在 XML 文档中。例如,MON_GET_CONNECTION_DETAILS 表函数将返回以下各列:
  • APPLICATION_HANDLE
  • MEMBER
  • DETAILS
每一行的 DETAILS 列中都包含一个 XML 文档,此 XML 文档中包含监视元素数据。此 XML 文档由若干个与监视元素相对应的文档元素组成。图 1 说明了包含 XML 文档的 DETAILS 列。此外,它还显示 DETAILS 列的 XML 文档中的所返回监视元素。
图 1. MON_GET_CONNECTION_DETAILS 返回的表,它显示包含 XML 文档的 DETAILS 列. 在表的下方显示了第三行中的 XML 文档的内容 ( 1 )。
MON_GET_CONNECTION_DETAILS
函数的输出,显示 DETAILS 文档。
DETAILS 文档的内容。
在前一个示例中,XML 文档元素 <agent_wait_time> 对应于 agent_wait_time 监视元素。

sqllib/misc/DB2MonRoutines.xsd 文件中提供了 DETAILS 列中所返回的 XML 文档的模式。可以在 sqllib/misc/DB2MonCommon.xsd 文件中找到更多详细信息。

DETAILS 列中的文档所包含的某些监视元素可以组成更高级别的文档元素。例如,用于报告与活动相关的指标的监视元素是 activity_metrics 元素的一部分。同样,系统级别的指标是 system_metrics 元素的一部分。

由事件监视器返回的 XML 数据

一些事件监视器以 XML 格式返回数据。这些格式在表 1 中进行了汇总。后面的节中描述了由各种事件监视器返回的 XML 文档的有关详细信息。
表 1. 由各种事件监视器返回的 XML 文档
事件监视器 事件监视器输出格式 返回的 XML 文档
统计事件监视器 关系表
文件
命名管道
指标
本文档中报告的指标反映自上次收集统计信息以来每个指标的变化。
details_xml
本文档中报告的指标会累积直到数据库取消激活。
活动事件监视器 关系表
文件
命名管道
details_xml
程序包高速缓存事件监视器 无格式事件 (UE) 表 指标

只有在 UE 表已变换为 XML 或关系表后,才能查看此文档。

工作单元事件监视器 无格式事件 (UE) 表 指标

只有在 UE 表已变换为 XML 或关系表后,才能查看此文档。

统计事件监视器

如果事件监视器输出中包括下面两个逻辑数据组中的任何一个,那么统计事件监视器以 XML 格式记录指标:
  • EVENT_SCSTATS
  • EVENT_WLSTATS
如果创建统计事件监视器以报告这两个组中的任何一个中的监视元素,那么会在两个 XML 文档中收集一些系统指标。details_xmlmetrics 监视元素中的每一个对应一个 XML 文档。这两个 XML 文档包含相同的监视元素集合。metrics 文档中,元素值反映自上次收集统计信息以来每个元素值的变化。details_xml 中包含的元素的值在每个时间间隔后不会重置;仅当数据库重新激活时,它们才会重置。如果数据写至文件或命名管道,那么这些元素将包括在自描述数据流中。如果事件监视数据写至表,那么 metrics 文档存储在名为 METRICS 的列中;details_xml 存储在名为 DETAILS_XML 的列中。图 2 显示统计事件监视器生成的 SCSTATS 表中出现 METRICS 和 DETAILS_XML 列时包含在这些列中的 XML 文档:
图 2. 统计事件监视器的输出(写至表时),显示 DETAILS_XML 和 METRICS 列。. 在表的下方显示了第三行中的 XML 文档的内容 ( 1 )。
统计事件监视器的表输出,显示了 DETAILS_XML 列和 METRICS 列。
这些列中包含的每个文档都包含 system_metrics 作为顶级元素,该顶级元素又包含用于报告系统相关指标的许多监视元素。
统计事件监视器中典型 metrics 文档的内容。

除了从 metrics 监视元素内的 XML 文档查看系统指标以外,还可直接从与 EVENT_SCMETRICS 和 EVENT_WLMETRICS 逻辑数据组相关联的输出中查看个别指标。

备注:
  • 统计事件监视器生成的 DETAILS_XML 列中包含的 details_xml 文档中报告的 system_metrics 元素也包含在另一个 XML 文档中,该 XML 文档包含在 MON_GET_SERVICE_SUBCLASS_DETAILS 和 MON_GET_WORKLOAD_DETAILS 表函数返回的 DETAILS 列中。与 details_xml 文档中报告的指标一样,DETAILS 列中包含的文档报告的指标会累积直到数据库取消激活。

活动事件监视器

当您创建活动事件监视器以报告 event_activity 逻辑数据组中的监视元素时,生成的其中一列是 DETAILS_XML。如果将事件监视器写入表中,那么 DETAILS_XML 是其中一列。如果将它写入某个文件或命名管道,那么 DETAILS_XML 是自描述数据流的一部分。无论是哪种方式,文档中都包含 activity_metrics 监视元素,而此监视元素中又包含许多用于报告与活动相关的指标的监视元素。
注: 由活动事件监视器生成的 DETAILS_XML 列中的 XML 文档所报告的 activity_metrics,也是由 MON_GET_ACTIVITY_DETAILS 表函数返回的 DETAILS 列中包含的 XML 文档的一部分。

程序包高速缓存事件监视器

程序包高速缓存事件监视器将它的输出写入无格式的事件 (UE) 表。如果您使用 EVMON_FORMAT_UE_TO_TABLES 表函数来转换此表中的数据,那么产生的其中一个表为 PKGCACHE_EVENT。此表中包含 METRICS 列。在每一行中,此列都包含一个 XML 文档,此 XML 文档具有与程序包高速缓存事件监视元素相关联的元素。
注: EVMON_FORMAT_UE_TO_TABLES 表函数还会为此事件监视器 所收集的指标创建一个单独的表(称为 PKGCACHE_METRICS)。 此表中包含的信息与 PKGCACHE_EVENT 表的 METRICS 列中报告的信息相同。因此,您可以从 PKGCACHE_METRICS 表的各列中检索指标,也可以使用 PKGCACHE_EVENT 表的 METRICS 列中所包含的 XML 文档。

EVMON_FORMAT_UE_TO_XML 函数也会生成一个 XML 文档,此 XML 文档具有与程序包高速缓存事件监视元素相关联的元素。例如,XML 文档元素 <num_executions> 对应于 num_executions 监视元素。

工作单元事件监视器

工作单元事件监视器将它的输出写入无格式的事件 (UE) 表。如果您使用 EVMON_FORMAT_UE_TO_TABLES 表函数来转换此表中的数据,那么产生的其中一个表为 UOW_EVENT。此表包含一个 METRICS 列,此列中包含一个 XML 文档,此 XML 文档具有与工作单元事件监视元素相关联的元素。

EVMON_FORMAT_UE_TO_XML 函数也会生成一个 XML 文档,此 XML 文档具有与工作单元事件监视元素相关联的元素。例如,XML 文档元素 <workload_name> 对应于 workload_name 监视元素。