Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DB2 锁升级失败将引起死锁

Posted on 2010-12-14 10:39 Prayer 阅读(946) 评论(0)  编辑 收藏 引用 所属分类: DB2

DB2 锁升级失败将引起死锁

文章分类:数据库
--start
引用

DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 2
Message: The current transaction has been rolled back because of a deadlock or timeout.  Reason code "2".


    昨天,执行了一条很简单的SQL,却怎么也执行不成功,报的错误如上所示,是死锁。既然是死锁,那就过一会执行吧。等了一会后仍然死锁。到底是哪个事务和哪个事务相互锁了呢?查询了老半天才发现原来这条SQL语句更新的数据量非常大,导致锁升级,然后锁升级又失败了,导致了死锁。原来锁升级失败会导致死锁。所以,通常我们应该将LOCKLIST和MAXLOCK参数调整到足够大,尽量避免锁等待、锁升级,发挥数据库的最大并发性。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理