Prayer

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

db2 怎么查死锁.怎么杀掉死锁进程?

Posted on 2009-08-06 19:25 Prayer 阅读(4575) 评论(0)  编辑 收藏 引用 所属分类: DB2
C:\>db2 get snapshot for locks on js

            数据库锁定快照

数据库名称                               = JS
数据库路径                          = D:\DB2\NODE0000\SQL00001\
输入数据库别名                      = JS
挂起的锁定                      = 5
当前已连接的应用程序            = 1
当前正等待锁定的代理程序数      = 0
快照时间戳记                    = 2007-09-04 12:54:33.121513

应用程序句柄                               = 10
应用程序标识                        = *LOCAL.DB2.070904045330
序号                                = 00001
应用程序名                          = db2taskd
CONNECT 授权标识                           = ADMINISTRATOR
应用程序状态                        = 连接已完成
状态更改时间                        = 未收集
应用程序代码页                             = 1208
挂起的锁定                      = 0
总计等待时间(毫秒)            = 未收集


应用程序句柄                               = 9
应用程序标识                        = *LOCAL.DB2.070904045329
序号                                = 00001
应用程序名                          = db2stmm
CONNECT 授权标识                           = ADMINISTRATOR
应用程序状态                        = 连接已完成
状态更改时间                        = 未收集
应用程序代码页                             = 1208
挂起的锁定                      = 0
总计等待时间(毫秒)            = 未收集


应用程序句柄                               = 8
应用程序标识                        = *LOCAL.DB2.070904045327
序号                                = 00011
应用程序名                          = javaw.exe
CONNECT 授权标识                           = ADMINISTRATOR
应用程序状态                        = UOW 正在等待
状态更改时间                        = 未收集
应用程序代码页                             = 1208
挂起的锁定                      = 5
总计等待时间(毫秒)            = 未收集

锁定列表
锁定名称                       = 0x020010000D0080080000000052
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 142606349
对象类型                       = 行
表空间名                       = USERSPACE1
表模式               = JS
表名                 = US_CATALOG
方式                           = X

锁定名称                       = 0x02001000090080080000000052
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 142606345
对象类型                       = 行
表空间名                       = USERSPACE1
表模式               = JS
表名                 = US_CATALOG
方式                           = X

锁定名称                       = 0x01000000010000000100EA0056
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 0
对象类型                       = 内部变化锁定
方式                           = S

锁定名称                       = 0x5359535348323030DDECEF2841
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 0
对象类型                       = 内部方案锁定
方式                           = S

锁定名称                       = 0x02001000000000000000000054
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 2
挂起计数                       = 0
锁定对象名                     = 16
对象类型                       = 表
表空间名                       = USERSPACE1
表模式               = JS
表名                 = US_CATALOG
方式                           = IX



C:\>db2 list applications

授权标识程序  应用程序名    应用程序句柄    应用程序标识            数据库名称    代理序号
------------ -------------- -------------- ------------------------ ------------- ----------
ADMINIST     db2taskd       10             *LOCAL.DB2.070904045330  JS              1
ADMINIST     db2stmm        9              *LOCAL.DB2.070904045329  JS              1
ADMINIST    javaw.exe       8              *LOCAL.DB2.070904045327  JS              1


在snapshot的第四段显示应用程序句柄为8的应用有锁存在,在其相应的锁定列表中显示锁定的表是US_CATALOG。
如果您确定是US_CATALOG表上发生了死锁,可以通过命令db2 "force application(8)"来杀掉该应用在数据库上
的连接。注意如果force命令导致该应用的事务回滚得话,force命令不能马上断开应用在数据库上的连接,而是
要等到回滚完成后才能断开该应用的数据库连接。

C:\>db2 list applications show detail
//list applications for database cmsbj3 show detail


如果DB2在Window上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。

1.DB2表锁定怎么解锁

http://www.chinaunix.net/jh/22/20020.html

2.DB2中怎么知道表的锁定情况:

http://www.chinaunix.net/jh/22/16766.html

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