实例讲解如何在DB2 UDB中正确的监控死锁
2008-01-28 16:24:38 来源:WEB开发网1. 首先建立一个死锁事件监控器
Session Monitor
db2 connect to sampledb2 "create event monitor
dlmon for tables, deadlocks with details write
to file 'C:dlmon'"mkdir C:dlmondb2 "
set event monitor dlmon state 1"
2. 用另外两个应用程序来产生一个死锁
Session A
db2 connect to sampledb2 c "insert into employee values('000350', 'Truman', 'I', 'Jiang',
'B00', '5892','1999-02-21', 'Engineer', 19, 'M',
'1978-06-17', 60000, 2000, 6000)"
现在应用程序A就拥有了一个EMPLOYEE表的行级别的排他锁
(注: c 代表不自动提交SQL语句,DB2 中 autocommit 是缺省设置,也可以通过 db2 update command options using c off 关闭该缺省选项。)
Session B
db2 connect to sampledb2 c "insert into project
values('AD3300', 'Dead Lock Monitor', 'B00', '000350',
7.00, '1982-07-21', '1983-02-03', 'AD3111')"
现在应用程序B就拥有了一个PROJECT表的行级别的排他锁
Session A
db2 c "select projname from project"
应用程序A需要PROJECT表上所有行的共享锁,但是因为PROJECT表正在被应用程序B以排他锁的形式独占,这时候应用程序1就进入一个锁等待的状态。
Session B
db2 c "select firstnme from employee"
更多精彩
赞助商链接