首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle用户锁(dbms_lock):授予请求的保证顺序?

Oracle用户锁(dbms_lock):授予请求的保证顺序?
EN

Database Administration用户
提问于 2014-08-13 10:18:19
回答 1查看 682关注 0票数 2

我想知道Oracle是否保证授予的dbms_lock.request序列与请求它们的顺序相同。在我的测试中,情况总是如此,但我在Oracle文档中找不到任何官方声明。

因此,假设我们至少有三次会议:

  1. 会话1通过dbms_lock.request(1)请求该锁,并立即授予该锁(因为该锁尚未被任何其他会话持有)
  2. 会话2通过dbms_lock.request(1)请求锁,并必须等待
  3. 会话3通过dbms_lock.request(1)请求锁,还必须等待
  4. 现在,会话1通过dbms_lock.release(1) (或trx端或会话端)释放锁。

它是否保证会话2现在将收到锁,会话3仍然必须等待到会话2版本?或者会话3可以在会话2之前接收锁?

编辑:如果答案是“是,保证”,请提供链接到Oracle文档,白皮书,V$ view等。

编辑2:有问题的数据库版本为11g及以上

EN

回答 1

Database Administration用户

发布于 2014-08-13 12:59:50

是!

有一个等待队列,第一个请求者是第一个服务。小心死锁。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/73883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档