WEB开发网
开发学院数据库DB2 DB2 V9.7 锁事件监控 阅读

DB2 V9.7 锁事件监控

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: 死锁事件两个应用程序有冲突的锁需求,不能完成应用事务的情况称为死锁,DB2 V9.7 锁事件监控(10),出现死锁时,一个应用拥有资源 A 的锁,默认检查间隔为 10 秒(DLCHKTIME 参数控制),DB2 V9.7 建议不再使用死锁监视器,去申请资源 B 的锁,另一个应用拥有资源 B 的锁

死锁事件

两个应用程序有冲突的锁需求,不能完成应用事务的情况称为死锁。出现死锁时,一个应用拥有资源 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 " 

上一页  5 6 7 8 9 10 

Tags:DB 事件 监控

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接