免费注册 查看新帖 |

Chinaunix

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

AS400 中RPGLE 的事务控制操作与隔离级别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-04 15:14 |只看该作者 |倒序浏览
最近研究了一下AS400 事务和隔离级别的技术特点,分享给大家,见博客:
http://blog.chinaunix.net/uid-2271579-id-3463609.html

论坛徽章:
0
2 [报告]
发表于 2013-02-06 17:06 |只看该作者
分享下自己以前关于记录锁的总结

记录锁分*read和*update两种,所以我给他分成以下3种情况:
1 只读I,产生*read的情况               
在事务控制块内,隔离级别*all/*cs       
*all:commit/rolback前所有读过的都加*read               
*cs:只对当前读取得记录加*read       
2更新读取U        ,产生*update的情况                       
2.1不在事务控制块内,只对当前读取得记录加*update               
2.2在事务控制块内               
  2.2.1*all:commit/rolback前所有读过的都加*update
   2.2.2*cs/*chg:commit/rolback前所有改过的和当前正在读取得都加*update
3只读I,不产生记录锁       
不在事务控制块内       

锁的限制                       
种类        允许的情况               
1        1,2(同一job内),3       
2        1(同一job内),3               
3        1,2,3

解释下[1        1,2(同一job内),3        ]
当某条记录被加了*read锁,那么它允许其他的*read锁,它允许同一job内的*update锁,当然还有不会产生记录锁的只读的情况
[2        1(同一job内),3],[3        1,2,3]同样类似的意思。

注意:共享odp不会产生互锁,在共享odp的时候,没有锁的限制。

ng的例子                       
1 jaba        *read               
2 jobb        *read               
3 jobb        *update       
看2和3满足,但是看1和3不满足,所以第三步会失败。

我整理的东西是在400上自己测试的总结,没有看过资料,肯定会有不全面的地方,可能会有错误的地方,
希望大家多指正。


       

论坛徽章:
0
3 [报告]
发表于 2013-02-07 10:05 |只看该作者
谢谢分享,你说的事务控制块应该是指作业中起了事务控制的模块。

论坛徽章:
0
4 [报告]
发表于 2013-04-02 09:26 |只看该作者
回复 1# li6612773


    技术大咖群187264569,不是同事就是朋友哦,一起成长吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP