银行 测试

CS游标稳定性隔离级别,加锁不理解,求指导

question:测试cs隔离级别打开两个cmd窗口,在cmd1窗口中执行tt表(id int,val varchar(10))ID          VAL----------- ----------          1 aa          2 bb    ... 显示全部
question:

测试cs隔离级别
打开两个cmd窗口,
在cmd1窗口中执行
tt表(id int,val varchar(10))
ID          VAL
----------- ----------
          1 aa
          2 bb
          3 nn
          4 mm


C:UsersAdministrator>db2 +c declare c1 cursor for select * from xdgl.tt with c
s

DB20000I  SQL 命令成功完成。
C:UsersAdministrator>db2 +c open c1
DB20000I  SQL 命令成功完成。
C:UsersAdministrator>db2 +c fetch c1
ID          VAL
----------- ----------
          1 aa
  1 条记录已选择。

在cmd2中 get snapshot for locks on kinoa

应用程序句柄                               = 584
应用程序标识                        = *LOCAL.DB2.130110060019
序号                                = 00015
应用程序名                          = db2bp.exe
CONNECT 授权标识                           = ADMINISTRATOR
应用程序状态                        = UOW 正在等待
状态更改时间                        = 未收集
应用程序代码页                             = 1386
挂起的锁定                      = 3
总计等待时间(毫秒)            = 0
锁定列表
锁定名称                       = 0x01000000010000000200602056
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 0
对象类型                       = 内部变化锁定
方式                           = S
锁定名称                       = 0x53514C43324832307F4760B841
锁定属性                       = 0x00000000
发行版标志                     = 0x40000000
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 0
对象类型                       = 内部方案锁定
方式                           = S
锁定名称                       = 0x02000903000000000000000054
锁定属性                       = 0x00000000
发行版标志                     = 0x00000001
锁定计数                       = 1
挂起计数                       = 0
锁定对象名                     = 777
对象类型                       = 表
表空间名                       = USERSPACE1
表模式               = XDGL
表名                 = TT
方式                           = IS

得到锁状况如上所示,
疑问:
1、当前锁定的是 行(  1 ,aa),还是游标中未获取出来的下一行?
2、我在cmd2执行

C:UsersAdministrator>db2 update xdgl.tt set val='1aaa' where id=1
DB20000I  SQL 命令成功完成。
C:UsersAdministrator>db2 update xdgl.tt set val='aaaa' where id=2
DB20000I  SQL 命令成功完成。
均没有问题
,请问不应该是锁定一行吗?为什么别的应用程序还可以操作? 收起
参与6

查看其它 4 个回答yezixingchen 的回答

yezixingchen yezixingchen 项目经理 杭信数码
多谢东焕老师了
银行 · 2013-01-10
浏览770

回答者

yezixingchen
项目经理 杭信数码
评论55

yezixingchen 最近回答过的问题

回答状态

  • 发布时间:2013-01-10
  • 关注会员:1 人
  • 回答浏览:770
  • X社区推广