有人的地方就有江湖,有资源等待的地方就有死锁。写完主键的死锁,基本上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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25016/viewspace-1018823/