更新不同的PK行

时间:2015-11-17 16:33:08

标签: spring oracle spring-integration deadlock

我的SPring Integration应用程序出了问题。

在代码的某一点上,apllication会抛出此错误: ORA-00060 - 检测到死锁

我在追踪中看到了这一点:

    Deadlock graph:
                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TM-00024912-00000000        58     395    SX   SSX       61     441    SX   SSX
TM-00024912-00000000        61     441    SX   SSX       58     395    SX   SSX

session 395: DID 0001-003A-000458EF session 441: DID 0001-003D-0002C56C 
session 441: DID 0001-003D-0002C56C session 395: DID 0001-003A-000458EF 

Rows waited on:
  Session 395: no row
  Session 441: no row

我确信查询会更新两个不同的行 如何在不同的PK行中发生死锁?

1 个答案:

答案 0 :(得分:0)

问题解决了。感谢所有人的回答。

问题是tablas是由外键引用分区的,并且FK没有编入索引,导致Oracle阻塞所有子表的死锁。

我已经为外键创建了所有索引,问题就解决了。