免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2991 | 回复: 3
打印 上一主题 下一主题

DB2 for Iseries 隔离级别之困惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-25 09:48 |只看该作者 |倒序浏览
db2 的隔离级别本有四种,但在400上有五种:*RR,*RS,*CS,*UR,*NC 其中*CHG 与 UR相同,*ALL 与 *RS相同但是为什么我在,两个交互式作业之间实验时却得不到其正确结果。
例如:
JOB1  中strcmtctl   *ALL  ,然后在strsql  COMMIT(*RS) 在其中对表1进行插入一条记录,但未提交。
这时我在JOB2中 启动事务strcmtctl  *CHG(其实是否起事务是一样的,都作了测试) 然后STRSQL
COMMIT (*RS) (JOB2中的理论上COMMIT指定成什么JOB1中的记录应是不可见的因为JOB1中已经指定隔离级别为*RS) ,但是JOB2中确能看见未提交的脏数据。所以非常不理解,请高手能指点一二。

论坛徽章:
0
2 [报告]
发表于 2008-01-25 11:40 |只看该作者
高手快现身,帖子都沉底了

论坛徽章:
0
3 [报告]
发表于 2008-01-25 13:50 |只看该作者
咋没人回复啊,再顶一下,再等

论坛徽章:
0
4 [报告]
发表于 2008-01-26 09:19 |只看该作者
原因:
1。你的这两个JOB是不是同一个ACTIVE Group? (The Default Active Group)
2。你的isolation level都是*RS。

参考:
Read stability
Like level RR, level Read Stability (RS) ensures that:
* Any row read during a unit of work is not changed by other activation groups
that use different commitment definitions until the unit of work is complete.

* Any row changed (or a row that is currently locked with an UPDATE row lock)
by another activation group using a different commitment definition cannot be
read until it is committed.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP