----获取锁方法:
----管理视图:
SELECT * FROM SYSIBMADM.SNAPLOCK
select * from SYSIBMADM.LOCKS_HELD
---表函数:
SELECT * FROM TABLE(SNAP_GET_LOCK('SAMPLE',-1)) AS SNAPLOCK;
SELECT * FROM TABLE(SNAPSHOT_LOCK('SAMPLE',-1)) AS SNAPLOCK;
----CLP:
get snapshot for locks for application applid appl-id
get snapshot for locks for application agentid appl-handle
get snapshot for locks on dbname
C:\Users\Administrator>db2 update monitor switches using lock on
DB20000I UPDATE MONITOR SWITCHES 命令成功完成。
C:\Users\Administrator>db2 get snapshot for locks on 数据库名;
应用程序句柄 = 1033
应用程序标识 = *LOCAL.DB2.130911021550
序号 = 00014
应用程序名 = javaw.exe
CONNECT 授权标识 = Administrator
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 1
总计等待时间(毫秒) = 未收集
锁定列表
锁定名称 = 0x5359534C564C3031DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部方案锁定
方式 = S
应用程序句柄 = 1783
应用程序标识 = GA380188.N908.108841025532
序号 = 00004
应用程序名 = w3wp.exe
CONNECT 授权标识 = Administrator
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集
C:\Users\Administrator>db2 get snapshot for locks for application agentid 1033
应用程序锁定快照
快照时间戳记 = 2013-09-11 11:52:39.071730
应用程序句柄 = 1033
应用程序标识 = *LOCAL.DB2.130911021550
序号 = 00014
应用程序名 = javaw.exe
ONNECT 授权标识 = Administrator
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 1
总计等待时间(毫秒) = 未收集
锁定列表
锁定名称 = 0x5359534C564C3031DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部方案锁定
方式 = S
C:\Users\Administrator>db2 list applications show detail
db2jcc_applica 257 10.56.1.131.64400.130911012715 SAMPLE 1
db2jcc_applica 928 10.56.1.131.64872.130911020859 SAMPLE 1
db2bp.exe 237 *LOCAL.DB2.130911012554 SAMPLE 1
javaw.exe 1033 *LOCAL.DB2.130911021550 SAMPLE 1
C:\Users\Administrator>db2 force application(1033)
如果显示锁定列表,判断锁定列表中显示锁定的表上是否发生了死锁,可以通过命令
db2 "force application(应用程序句柄对应的ID)"来杀掉该应用在数据库上 。
db2pd工具:
C:\Documents and Settings\Administrator>db2pd -inst db2 -db sample -locks
C:\Documents and Settings\Administrator>db2 connect to testdb
数据库连接信息
数据库服务器 = DB2/NT64 9.7.1
SQL 授权标识 = Administrator
本地数据库别名 = TESTDB
C:\Documents and Settings\Administrator>db2 -c- declare c1 cursor for select * from staff where job='Sales' for update
DB20000I SQL 命令成功完成。
C:\Documents and Settings\Administrator>db2 connect to sample
SQL0752N 当使用 CONNECT 类型 1 设置时,不允许在逻辑工作单元内连接数据库。
C:\Documents and Settings\topicis>db2 set client connect 1
SQL1246N 当存在连接时,不能更改连接设置。
C:\Documents and Settings\topicis>db2 rollback
DB20000I SQL 命令成功完成。
C:\Documents and Settings\Administrator>db2 connect to sample
数据库连接信息
数据库服务器 = DB2/NT64 9.7.1
SQL 授权标识 = Administrator
本地数据库别名 = SAMPLE
C:\Documents and Settings\Administrator>db2 -c- open c1
DB20000I SQL 命令成功完成。
C:\Documents and Settings\Administrator>db2 -c- fetch c1
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
20 Pernal 20 Sales 8 78171.25 612.45
1 条记录已选择。
参考:http://www.ibm.com/developerworks/cn/data/library/techarticles/0305deroos/0305deroos.html