DB2 V9.7 锁事件监控
2010-02-04 00:00:00 来源:WEB开发网清单 12. 查询锁事件参与者的活动
SELECT
PARTICIPANT_NO,
ACTIVITY_TYPE,
substr(STMT_TEXT,1,256) sql_text
FROM LOCK_PARTICIPANT_ACTIVITIES;
对清单 12 的查询结果,我们重点关注 ACTIVITY_TYPE 和 SQL。活动类型取值 current 表示应用正在执行某个 SQL,取值 past 表示该 SQL 已经执行完成。上述查询结果在显示 PARTICIPANT_NO 为 1(与清单 11 查询语句关联,即为应用程序 2)正在执行 Update 语句,PARTICIPANT_NO 为 2(与清单 11 查询语句关联,即为应用程序 1)则已经完成 Update 语句执行。
清单 13. 引起锁等待的 SQL
PARTICIPANT_NO ACTIVITY_TYPE SQL_TEXT
1 current update db2admin.stock set qty=qty+1 where itemno=300
2 past update db2admin.stock set qty=qty+1 where itemno=300
锁超时事件
为避免应用程序处于无限等待状态,我们可以为应用程序设定锁超时。这可以通过修改数据库配置参数 LOCKTIMEOUT 为所有应用程序设置超时时间,也可以通过为特定会话设置 CURRENT LOCK TIMEOUT 特殊寄存器达到这个目的。本文在两个应用程序的命令行中设置 CURRENT LOCK TIMEOUT 特殊寄存器为 30 秒给 APP1 和 APP2 限定超时时间,然后重新执行 Update 语句。为避免与锁等待的事件信息混淆,我们删除事件、删除非格式化表、删除格式化结果表
清单 14. 为 APP1 和 APP2 会话设置锁超时
db2 "set current lock timeout 30"
清单 15. 创建锁超时事件
db2 " drop event monitor LOCKWAITEVM"
db2 " drop table LOCKWAITEVM"
db2 " drop table LOCK_ACTIVITY_VALUES"
db2 " drop table LOCK_EVENT"
db2 " drop table LOCK_PARTICIPANTS"
db2 " drop table LOCK_PARTICIPANT_ACTIVITIES "
db2 create event monitor locktimeout for locking
WRITE TO UNFORMATTED EVENT TABLE
db2 set event monitor locktimeout state 1
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接