软件开发Db2db2死锁

DB2数据库不会检测死锁和锁超时?

环境:LINUXdb2level:DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09010" with level identifier "02010107".Informational tokens are "DB2 v9.1.0.0", "s060629", "LINUXAMD64", and Fix Pack "0".问题:数据库不会检测死锁和锁超时。也就是说...显示全部

环境:LINUX
db2level:
DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09010" with level identifier "02010107".
Informational tokens are "DB2 v9.1.0.0", "s060629", "LINUXAMD64", and Fix Pack "0".

问题:
数据库不会检测死锁和锁超时。
也就是说理论上应该检测到死锁和锁超时的并发上面,这个数据库没有检测出来,然后一直在锁等待。

db2 get db cfg for TSO | grep -i LOCK
Max storage for lock list (4KB) (LOCKLIST) = AUTOMATIC
Percent. of lock lists per application (MAXLOCKS) = AUTOMATIC
Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Lock timeout (sec) (LOCKTIMEOUT) = 15
Block log on disk full (BLK_LOG_DSK_FUL) = NO

DB2DETAILDEADLOCK的state确认为1。

请问,DB2的死锁和锁超时检测,在什么情况下会失效,该如何检查?万望赐教。
这个数据库不是我部署的,我也对部署这个库的人很无力。

收起
参与25

查看其它 3 个回答chusi的回答

chusichusi软件开发工程师新数科技

所有的关系型数据库都会检测死锁,DB2的死锁探测器默认10秒启动一次,发现死锁后随机挑选其中一方强制回滚,跟你说的这个参数DB2DETAILDEADLOCK没关系。
至于锁超时,倒是有可能应用在连接级别另外自定义了锁超时时间覆盖了数据库参数LOCKTIMEOUT的设置。

能说说你们是根据什么现象怎么判断数据库没有检测死锁的吗?

软件开发 · 2017-08-24
浏览3060

回答者

chusi
软件开发工程师新数科技
擅长领域: 数据库双活Db2 pureScale

chusi 最近回答过的问题

回答状态

  • 发布时间:2017-08-24
  • 关注会员:4 人
  • 回答浏览:3060
  • X社区推广