主鍵衝突引發的死鎖

zhang41082發表於2019-04-07

有人的地方就有江湖,有資源等待的地方就有死鎖。寫完主鍵的死鎖,基本上ORACLE的死鎖也就都在這裡了--主外來鍵死鎖、BITMAP索引死鎖、ITL死鎖,還有最常見的事務鎖的引發的死鎖。主鍵的死鎖很容易模擬出來的,建一個表,插入一個值,然後不要COMMIT,另一個會話插入另一個值,也不要COMMIT,然後再把這兩個插入的值互相交換一下,在兩個會話中分別插入,死鎖產生。更深入的分析也不想寫了,記錄一下TRACE檔案吧。

[@more@]

Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-000a0023-000ae85b 24 569 X 23 565 S
TX-0005002a-0006e07c 23 565 X 24 569 S
session 569: DID 0001-0018-00000054 session 565: DID 0001-0017-000001DF
session 565: DID 0001-0017-000001DF session 569: DID 0001-0018-00000054
Rows waited on:
Session 565: no row
Session 569: no row

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-1018823/,如需轉載,請註明出處,否則將追究法律責任。

相關文章