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

如何监控死锁

为了详细说明事件监控器在死锁监控中的用途,我引入了一个简单的死锁场景来触发一个死锁,在随后的章节,我会告诉读者如何分析监控结果以及根据结果来避免死锁的发生。

这里我们需要至少三个应用程序来调用DB2 CLI,一个用来监控死锁的发生,另外两个用来产生死锁。我们可以使用DB2 UDB 安装时附带的SAMPLE数据库。

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" 数据挖掘实验室 

应用程序B也进入一个锁等待的状态。此时就出现了一个死锁状态。

3. 两个本身处于锁等待并且占有资源的应用程序互相等待另外一方所持有的资源,这时候Session A和Session B就出现了死锁状态,这种状态一直会延续直到死锁检查器(超出DLCHKTIME时间以后)检查出一个死锁并且回滚其中的一个事务。

Session B

SQLN0991N 因为死锁或者超时,当前事务已经被回滚。原因码为 "2". SQLSTATE=40001这时候死锁事件监控器就会记录这个死锁,同时应用程序A可以完成他的工作。

Session A
PROJNAME----------……20 条记录已选择
Session A
db2 connect reset
Session B
db2 connect reset 数据挖掘交友 

4. 通过 db2evmon 工具可以获得死锁信息的日志,并且把日志文件导入到本地机器的文件系统当中。在下面一节,我们将详细分析导出的日志文件。

Session Monitordb2 connect resetdb2evmon 
-path c:dlmon > c:dlmondllog1.txt 

数据挖掘论坛

<<上一页 1 2 3 下一页>> 数据挖掘研究院

数据挖掘工具

Create By Any-Extract(WL-AE) 数据挖掘论坛

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:快速掌握查看数据库表死锁的实用方法
下一篇:实例讲解如何在DB2 UDB中正确的监控死锁
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Windows Communication Foundation - Part
  • Industry Leaders Line Up Behind Informat
  • IBM DB2 日常维护汇总(八)
  • DB2 Data Warehouse Edition V9.1 overview
  • DB2编程序技巧 (二)
  • IBM DB2前世今生之DB2的诞生
  • IBM DB2 日常维护汇总(二)
  • DB2编程序技巧 (十)
  • DB2的数据同步经验总结
  • DB2编程序技巧 (六)
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • IBM DB2前世今生之DB2的诞生
  • Modernizing the Mainframe Through SOA: T
  • Industry Leaders Line Up Behind Informat
  • DB2编程序技巧 (七)
  • DB2编程序技巧 (九)
  • DB2编程序技巧 (一)
  • DB2编程序技巧 (十)
  • DB2编程序技巧 (六)
  • DB2编程序技巧 (八)
  • DB2编程序技巧 (三)
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静