请教DB2查询和删除同时发生引起死锁问题
2个回答
展开全部
举一个例子:
lock table CCP.CUST_GROUP in exclusive mode;
db2 get snapshot for locks on xx
数据库分区 = 0
锁定名称 = 0x02004500000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 69
对象类型 = 表
表空间名 = CCP
表模式 = CCP
表名 = CUST_GROUP
方式 = X
这时候另一个进程执行命令如下:
select * from CCP.CUST_GROUP;
这时候就会死锁!
看到后台锁进程如下
数据库分区 = 0
锁定名称 = 0x02004500000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 69
对象类型 = 表
表空间名 = CCP
表模式 = CCP
表名 = CUST_GROUP
方式 = X
应用程序句柄 = 162
应用程序标识 = A9FE0B84.EF0E.012D48113343
序号 = 0003
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = CCP
应用程序状态 = 锁定等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 2
总计等待时间(毫秒) = 未收集
lock table CCP.CUST_GROUP in exclusive mode;
db2 get snapshot for locks on xx
数据库分区 = 0
锁定名称 = 0x02004500000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 69
对象类型 = 表
表空间名 = CCP
表模式 = CCP
表名 = CUST_GROUP
方式 = X
这时候另一个进程执行命令如下:
select * from CCP.CUST_GROUP;
这时候就会死锁!
看到后台锁进程如下
数据库分区 = 0
锁定名称 = 0x02004500000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 255
挂起计数 = 0
锁定对象名 = 69
对象类型 = 表
表空间名 = CCP
表模式 = CCP
表名 = CUST_GROUP
方式 = X
应用程序句柄 = 162
应用程序标识 = A9FE0B84.EF0E.012D48113343
序号 = 0003
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = CCP
应用程序状态 = 锁定等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 2
总计等待时间(毫秒) = 未收集
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询