1. 程式人生 > >DB2 SQL0911N

DB2 SQL0911N

SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "68".

SQL0911N  因為死鎖或超時,所以當前事務已回滾。原因碼為 "68"。

效能測試時出現此問題,開始以為是死鎖,後來查到出現SQL0911N 並非一定是死鎖,還取決於原因碼是哪一個。

SQL0911N  因為死鎖或超時,所以當前事務已回滾。原因碼為 "<原因碼>"。

說明:
當前工作單元參與了未解決的物件爭用,因此必須回滾。

原因碼如下所示:

2        由於死鎖而導致事務已回滾。

68       由於鎖定超時而導致事務已回滾。

72       因為存在與事務中所涉及的 DB2 Data Links Manager 有關的錯誤,所
         以事務已回滾。

注: 必須再次輸入與工作單元相關的更改。
應用程式已回滾至上一次 COMMIT。

本人遇到的錯是鎖等待超時而並非死鎖。當然鎖等待超時也意味著存在效能問題。

鎖等待超時解決辦法:
1.優化相關sql
2.延長超時設定合適大小

死鎖分析方法:
db2對死鎖進行分析需藉助死鎖監視器,但開啟死鎖監視器會有額外的開銷,一般情況下禁用死鎖監視器。
具體操作可見官網https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1004lockeventmonitor/