【发布时间】:2011-11-10 03:13:21
【问题描述】:
即使我没有使用任何显式表锁定并且我的隔离级别设置为READ COMMITTED,我也会收到此错误Message: ORA-00060: deadlock detected while waiting for resource。
我在 Spring TransactionTemplate 上使用默认传播的多个线程。在我的业务逻辑中,数据是分开的,因此两个事务永远不会有相同的数据集。因此我不需要SERIALIZABLE
为什么 Oracle 可以检测到死锁?在这个星座中死锁是不可能的,还是我错过了什么?如果我没有遗漏任何东西,那么我的分离算法一定是错误的,对吧?还是有其他解释?
【问题讨论】:
-
Oracle 检测到死锁时,会生成死锁跟踪文件。你能得到那个文件(或者让你的 DBA 把它发给你)吗?有多种可能性,但死锁跟踪文件会准确地告诉您发生了什么。
标签: database oracle spring transactions deadlock