我在wdilfy 10服务器中使用hibernate,我遇到了以下问题:
有一个父实体Parent
,它有一个Child
个实体的集合,并且有一个作业,可以加载一些Parent
个实体,清除子集合并放置新的Child
个实体。
当此任务多次并发执行时,即使每个任务正在处理自己的Parent
实体列表,偶尔也会发生死锁,我不明白这是怎么发生的。
MS-SQL服务器探查器显示Child
授权表的行上存在死锁。但由于Child
和Parent
之间没有Parent
共享由多个ond任务处理,因此Child
表的任何行都不应被多个访问完全没有任务。
有人有想法吗?
答案 0 :(得分:1)
尝试使用重试逻辑。当我知道其他进程可能锁定我的代码使用的一些资源时,我通常会重复尝试三次。如果这对您没有帮助,那么您需要查看死锁图。
获取死锁图以便精确定位死锁的发生。您可以从SQL Server Profiler获取死锁图。在Locks部分找到死锁图,死锁或死锁链。