我试着读一篇关于锁和死锁的文章,它只是不着陆,不同类型的锁。 我们正在运行2个不同的进程,它们试图编辑同一个表中的记录。 第一个进程读取新数据并将其发送给外部方并相应地更新状态,另一个进程接收来自外部方的接收结果并相应地更新状态。有没有一种方法来防止死锁(以及发生了什么是一个发生,一个受害)
现在我们越来越多的死锁(在这种情况下,其中一个是victom并被中止)。到目前为止这么好,因为你可以预见到这一点,并尝试重新运行该声明,但总是发生同样的死锁。这就是我的第一个问题:为什么同样的死锁总是再次发生?
第二,有没有办法告诉dbms,当另一个进程正在读取和更新记录时,不要尝试获取记录的独占锁(我们通过存储过程更新单个记录),而是'等待一边'直到另一个进程准备好了?或者说是一个太简单的事情来说死锁?
并且可能是第三个,有没有办法向LINQ to SQL询问哪些锁导致了问题,所以我对该进程的哪些部分导致问题有所了解。