即使我沒有使用任何明確的表鎖,並且我的隔離級別設置爲READ COMMITTED
,我得到此錯誤Message: ORA-00060: deadlock detected while waiting for resource
。Oracle死鎖沒有顯式鎖定和讀提交隔離級別,爲什麼?
我使用默認傳播的彈簧TransactionTemplate
上的多個線程。在我的業務邏輯中,數據是分開的,因此兩個事務永遠不會有相同的一組數據。因此,我不需要SERIALIZABLE
爲什麼Oracle可以檢測到死鎖?殭屍在這個星座是不可能的,或者我錯過了什麼?如果我沒有遺漏任何東西,那麼我的分離算法一定是錯的,對吧?或者可以有其他解釋嗎?
當Oracle檢測到死鎖時,會生成死鎖跟蹤文件。你能得到這個文件嗎(或者要求你的DBA發送給你)?有很多可能性,但死鎖跟蹤文件會告訴你到底發生了什麼。 –