4

用 Perl DBI 检测死锁的正确方法是什么?

我应该使用eval { }吗?要捕获哪个异常?

4

1 回答 1

2

答案将取决于 DBMS。

一些 DBMS 可能根本没有发现死锁;您必须在 DB 操作上设置某种超时,如果超时触发,则不清楚 DBI 和相关 DBD 将处于什么状态。

一些 DBMS 会检测到死锁并报告错误,在这种情况下,您或多或少地处理错误,就像处理任何其他错误一样——但“死锁错误”的特殊错误代码处理取决于所使用的特定 DBMS。

我不确定是否还有其他重要的选择。

于 2012-10-14T12:25:12.320 回答