用于读取事件监视数据的 db2evmonfmt 工具
根据将其输入写入规则表或使用无格式事件表的事件监视器所生成的数据,基于 Java™ 的通用 XML 解析器工具
db2evmonfmt 将生成可读的纯文本输出(文本版本)或格式化
XML 输出。
根据您指定的参数,db2evmonfmt
工具将确定事件监视数据的解析方式以及所要创建的输出类型。
db2evmonfmt 工具以 Java
源代码形式提供。在使用此工具之前,您必须通过执行下列步骤来设置和编译此工具:
- 在
sqllib/samples/java/jdbc目录中找到源代码 - 按照 Java 源文件中嵌入的指示信息来设置和编译此工具
此工具使用 XSLT 样式表将事件数据变换为带格式文本。您不需要理解这些样式表。此工具将根据事件监视器类型自动装入正确的样式表并变换事件数据。每个事件监视器都将在
sqllib/samples/xml/data 目录中提供缺省样式表。此工具还提供了下列过滤选项:- 事件标识
- 事件时间戳记
- 事件类型
- 工作负载名
- 服务类名
- 应用程序名
工具语法
工具参数
- java
- 要成功地运行基于 Java 的 db2evmonfmt 工具,必须在工具名前面指定
java 关键字。在产品安装期间,将从
sqllib/java/jdk64目录中安装成功运行此工具所需的正确 Java 版本。
- -d db_name
- 指定所要连接的数据库的名称。
- -ue table_name
- 指定无格式事件表的名称。
- -wtt write_to_table_event_monitor_name
- 使用 WRITE TO TABLE 目标指定事件监视器的名称。仅支持工作单元 (UOW)、程序包高速缓存、锁定和变更历史记录事件监视器。
- -u user_id
- 指定用户标识。
- -p password
- 指定密码。
- -f xml_filename
- 指定要格式化的输入 XML 文件的名称。
- -fxml
- 生成格式化 XML 文档(输出到标准输出)。
- -ftext
- 将 XML 文档格式化为文本文档(输出到标准输出)。
- -ss stylesheet_name
- 指定用于变换 XML 文档的 XSLT 样式表。
- -id event_id
- 显示所有与指定事件标识匹配的事件。仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
- -type event_type
- 显示所有与指定事件类型匹配的事件。仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
- -hours num_hours
- 显示所有在过去指定数目的小时内发生的事件。仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
- -w workload_name
- 显示所有属于所指定工作负载的事件。仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
- -a appl_name
- 显示所有属于所指定应用程序的事件。仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
- -s srvc_subclass_name
- 显示所有属于所指定服务子类的事件。 仅当指定 -ue 选项时,此选项才有效;否则会将其忽略。
XSLT 样式表
数据库管理器提供了缺省 XSLT 样式表(参见表 1),这些样式表位于
sqllib/samples/java/jdbc 目录中。您可以对这些样式表进行更改,以便生成需要的输出。
| 事件监视器 | 缺省 XSLT 样式表 |
|---|---|
| 锁定 | DB2EvmonLocking.xsl |
| 工作单元 | DB2EvmonUOW.xsl |
| 程序包高速缓存 | DB2EvmonPkgCache.xsl |
您可以创建自己的 XSLT 样式表以变换 XML 文档。可以使用 -ss stylesheet_name 选项将这些样式表传递给基于 Java 的工具。
示例
- 示例 1
- 要从数据库 SAMPLE 中的程序包高速缓存无格式事件表 PKG 中获取过去 32 小时内发生的所有事件的带格式文本输出,请发出以下命令:
java db2evmonfmt -d sample -ue pkg -ftext -hours 32
- 示例 2
- 要从数据库 SAMPLE 中的无格式事件表 LOCK 中获取过去 24 小时内发生的所有
LOCKTIMEOUT 类型事件的带格式文本输出,请发出以下命令:
java db2evmonfmt -d sample -ue LOCK -ftext -hours 24 -type locktimeout
- 示例 3
- 要从 XML 源文件 LOCK.XML 中获取带格式文本输出,以便抽取过去 5 小时内发生的所有与事件类型
LOCKWAIT 匹配的事件,请发出以下命令:
java db2evmonfmt -f lock.xml -ftext -type lockwait -hours 5
- 示例 4
- 要使用已创建的 XSLT 样式表 SUMMARY.XSL 从数据库 SAMPLE 中的无格式事件表 UOW
中获取所有事件的带格式文本输出,请发出以下命令:
java db2evmonfmt -d sample -ue uow -ftext -ss summary.xsl
格式化纯文本输出样本
以下格式化纯文本输出样本是使用锁定事件监视器 XSLT 样式表生成的:--------------------------------------------------
Event Entry : 0
Event ID : 1
Event Type : Locktimeout
Event Timestamp : 2008-05-23-12.00.14.132329000
--------------------------------------------------
Lock Details
------------
Lock Name : 02000401000000000000000054
Lock Type : Table
Lock Attributes : 00000000
Lock Count : 1
Lock Hold Count : 0
Lock rrIID : 0
Lock Status : Waiting
Cursor Bitmap : 00000000
Tablespace Name : USERSPACE1
Table Name : NEWTON .SARAH
Attributes Requestor Holder
---------- --------- ------
Application Handle [0-35] [0-16]
Application ID *LOCAL.horton.080523160016 *LOCAL.horton.080523155938
Application Name xaplus0001 db2bp
Authentication ID NEWTON HORTON
Requesting Agent 65 21
Coordinating Agent 65 21
Application Status SQLM_CONNECTPEND SQLM_CONNECTPEND
Lock Timeout 5000 0
Workload Name XAPLUS0010_WL02 SYSDEFAULTUSERWORKLOAD
Service Subclass XAPLUS0010_SC02 SYSDEFAULTSUBCLASS
Current Request Execute Execute Immediate
Lock Mode Intent Exclusive Exclusive
tpmon Userid
tpmon Wkstn
tpmon App
tpmon Accstring
Lock Requestor Current Activities
---------------------------------
Activity ID : 2
Uow ID : 1
Package ID : 65426E4D4B584659
Package SectNo : 3
Package Name : NEWTON
Package Schema : AKINTERF
Package Version :
Reopt : always
Eff Isolation : Cursor Stability
Eff Locktimeout : 5
Eff Degree : 0
Nesting Level : 0
Stmt Unicode : No
Stmt Flag : Dynamic
Stmt Type : DML, Insert/Update/Delete
Stmt Text : INSERT INTO SARAH VALUES(:H00008, :H00013, :H00014)
Lock Requestor Past Activities
------------------------------
Activity ID : 1
Uow ID : 1
Package ID : 65426E4D4B584659
Package SectNo : 2
Package Name : NEWTON
Package Schema : AKINTERF
Package Version :
Reopt : always
Eff Isolation : Cursor Stability
Eff Locktimeout : 5
Eff Degree : 0
Nesting Level : 0
Stmt Unicode : No
Stmt Flag : Dynamic
Stmt Type : DML, Insert/Update/Delete
Stmt Text : INSERT INTO NADIA VALUES(:H00007)
Lock Holder Current Activities
------------------------------
Lock Holder Past Activities
------------------------------
Activity ID : 1
Uow ID : 2
Package ID : 41414141414E4758
Package SectNo : 201
Package Name : NULLID
Package Schema : SQLC2G13
Package Version :
Reopt : none
Eff Isolation : Cursor Stability
Eff Locktimeout : 5
Eff Degree : 0
Nesting Level : 0
Stmt Unicode : No
Stmt Flag : Dynamic
Stmt Type : DML, Select (blockable)
Stmt Text : select * from newton.sarah
Activity ID : 2
Uow ID : 2
Package ID : 41414141414E4758
Package SectNo : 203
Package Name : NULLID
Package Schema : SQLC2G13
Package Version :
Reopt : none
Eff Isolation : Cursor Stability
Eff Locktimeout : 5
Eff Degree : 0
Nesting Level : 0
Stmt Unicode : No
Stmt Flag : Dynamic
Stmt Type : DML, Lock Table
Stmt Text : lock table newton.sarah in exclusive mode
--------------------------------------------------
Event Entry : 1
Event ID : 2
Event Type : Locktimeout
Event Timestamp : 2008-05-23-12.04.42.144896000
--------------------------------------------------
...
...
...用法说明
db2evmonfmt
实用程序是基于 Java 的工具,要成功地运行此工具,必须在它前面指定 java
关键字。所需的 Java 版本是从 sqllib/java/jdk64 目录中随产品一起安装的版本。
如果提供了连接参数,那么 db2evmonfmt 工具会直接从事件监视器检索数据。当 db2evmonfmt 工具直接从事件监视器检索数据时,该命令会调用 EVMON_FORMAT_UE_TO_XML 表函数来根据该事件监视器中的二进制事件构建 XML 文档。如果需要有关部分事件的详细信息,必须在基于 Java 的工具中修改 EVMON_FORMAT_UE_TO_XML 调用,以添加 LOG_PARTIAL_EVENTS 选项。在修改 EVMON_FORMAT_UE_TO_XML 调用之后,必须重新编译该工具。有关部分事件以及 LOG_PARTIAL_EVENTS 选项的更多信息,请参阅 EVMON_FORMAT_UE_TO_XML 表函数 - 将无格式事件转换为 XML。
注: 还可直接使用
EVMON_FORMAT_UE_TO_XML 表函数来将无格式事件表 BLOB 列中包含的二进制事件的格式设置为 XML 文档。
