12
返回列表 发新帖
楼主: wawk

请教request=4在V$LOCK中是什么意思

[复制链接]
论坛徽章:
0
11#
 楼主| 发表于 2008-3-15 16:51 | 只看该作者
经观察三个事务中拥有的表锁都是7827,requestmode为3,不同的事务表锁可以共用?
可以看到被阻塞的事务12先获取了表锁7827
DOCMAN                                 12       7827          0          3
    0          0 TM


USERNAME                              SID        ID1        ID2      LMODE    RE
QUEST      BLOCK TY
------------------------------ ---------- ---------- ---------- ---------- -----

DOCMAN                                 13      65555        344          6
    0          1 TX
DOCMAN                                 12      65555        344          0
    4          0 TX
SID为13的事务拥有的TX拥有序号344,BLOCK为1,表明他阻塞了另一个会话(12);但为什么12的请求不为6而为4了。这里TX ,4表明什么意思啊。还有就是TM 3跟TM 2有什么区别啊,试了试发现select for update得到的表锁为2

第一次发言,呵呵。麻烦大家帮忙看看

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2008-03-13 10:32:44生肖徽章2007版:鸡
日期:2008-04-03 18:55:51数据库板块每日发贴之星
日期:2008-04-21 01:01:58奥运会纪念徽章:拳击
日期:2008-06-14 10:29:372014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
12#
发表于 2008-3-16 00:27 | 只看该作者
我试了一下,查询v$lock发现有两种情况:
1、如果第三个事务update的行与前两个事务所update的行相同,则请求exclusive(6);
2、如果第三个事务update的行不是前两个事务update的行,则请求share(4);

在第2种情况下,rollback前两个事务其中一个,查询v$lock发现第三个事务的lmode马上变为6了,也就说它最终还是获得exclusive(6)锁。

因此我猜测oracle检测到事务数超过表T的maxtrans,于是就tx只能先请求shard(4),根据oracle锁自动升级的机制,等到资源允许就升级至请求exclusive(6)了。
请大家指教!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表