我想知道Oracle是否保证授予的dbms_lock.request序列与请求它们的顺序相同。在我的测试中,情况总是如此,但我在Oracle文档中找不到任何官方声明。
因此,假设我们至少有三次会议:
dbms_lock.request(1)请求该锁,并立即授予该锁(因为该锁尚未被任何其他会话持有)dbms_lock.request(1)请求锁,并必须等待dbms_lock.request(1)请求锁,还必须等待dbms_lock.release(1) (或trx端或会话端)释放锁。它是否保证会话2现在将收到锁,会话3仍然必须等待到会话2版本?或者会话3可以在会话2之前接收锁?
编辑:如果答案是“是,保证”,请提供链接到Oracle文档,白皮书,V$ view等。
编辑2:有问题的数据库版本为11g及以上
发布于 2014-08-13 12:59:50
是!
有一个等待队列,第一个请求者是第一个服务。小心死锁。
https://dba.stackexchange.com/questions/73883
复制相似问题