用于读取事件监视数据的 db2evmonfmt 工具

根据将其输入写入规则表或使用无格式事件表的事件监视器所生成的数据,基于 Java™ 的通用 XML 解析器工具 db2evmonfmt 将生成可读的纯文本输出(文本版本)或格式化 XML 输出。 根据您指定的参数,db2evmonfmt 工具将确定事件监视数据的解析方式以及所要创建的输出类型。
db2evmonfmt 工具以 Java 源代码形式提供。在使用此工具之前,您必须通过执行下列步骤来设置和编译此工具:
  1. sqllib/samples/java/jdbc 目录中找到源代码
  2. 按照 Java 源文件中嵌入的指示信息来设置和编译此工具
您可以随意修改源代码以更改输出。
此工具使用 XSLT 样式表将事件数据变换为带格式文本。您不需要理解这些样式表。此工具将根据事件监视器类型自动装入正确的样式表并变换事件数据。每个事件监视器都将在 sqllib/samples/xml/data 目录中提供缺省样式表。此工具还提供了下列过滤选项:
  • 事件标识
  • 事件时间戳记
  • 事件类型
  • 工作负载名
  • 服务类名
  • 应用程序名

工具语法

阅读语法图跳过直观语法图javadb2evmonfmt connectXML filefilter options-h
connect
阅读语法图跳过直观语法图-ddb_name -uetable_name-wttwrite_to_table_event_monitor_name -uuser_id-ppassword
XML file
阅读语法图跳过直观语法图-fxml_filename
filter options
阅读语法图跳过直观语法图-fxml-ftext-ssstylesheet_name-idevent_id-typeevent_type-hoursnum_hours-wworkload_name-aappl_name-ssrvc_subclass_name

工具参数

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 目录中。您可以对这些样式表进行更改,以便生成需要的输出。

表 1. 事件监视器的缺省 XSLT 样式表
事件监视器 缺省 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 文档。