DB2 V9.7 锁事件监控
2010-02-04 00:00:00 来源:WEB开发网死锁事件
两个应用程序有冲突的锁需求,不能完成应用事务的情况称为死锁。出现死锁时,一个应用拥有资源 A 的锁,去申请资源 B 的锁,另一个应用拥有资源 B 的锁,去申请资源 A 的锁。双方都处于锁等待状态,并且也不释放自己拥有的锁,导致无限循环等待。死锁一般都是由于应用使用资源时顺序不当导致的,可以通过建立资源访问规则避免死锁。
DB2 在 V9.7 版本以前,默认为数据库建立了一个死锁监视器,并启动一个死锁检查进程定期启动检查是否有死锁存在,默认检查间隔为 10 秒(DLCHKTIME 参数控制)。DB2 V9.7 建议不再使用死锁监视器,建议采用锁监视。
清单 20. 创建死锁事件监视
db2 " drop event monitor locktimeout "
db2 " drop table LOCKTIMEOUT"
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 lockdead for locking
WRITE TO UNFORMATTED EVENT TABLE
db2 set event monitor lockdead state 1
我们依次在 APP1 和 APP2 连接下执行下面 SQL:
清单 21. APP1 更新 ITEMNO 为 300 的行
db2 +c "update db2admin.stock set qty=qty+1 where itemno=300 "
清单 22. APP2 更新 ITEMNO 为 259 的行
db2 +c "update db2admin.stock set qty=qty+1 where itemno=259 "
清单 23. APP1 更新 ITEMNO 为 259 的行
db2 +c "update db2admin.stock set qty=qty+1 where itemno=259 "
- ››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 实战
更多精彩
赞助商链接