WEB开发网
开发学院数据库DB2 实例讲解如何在DB2 UDB中正确的监控死锁 阅读

实例讲解如何在DB2 UDB中正确的监控死锁

 2008-01-28 16:24:38 来源:WEB开发网   
核心提示: 1. 首先建立一个死锁事件监控器 Session Monitordb2 connect to sampledb2 "create event monitordlmon for tables, deadlocks with details writeto file 'C:d

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"

上一页  1 2 3 4 5  下一页

Tags:实例 讲解 如何

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