DB2 中死锁的错误代码、原因和示例
db2databasebig data analytics更新于 2026/2/7 23:22:17
当两个应用程序互相锁定对方所需的数据时,就会发生死锁。这两个应用程序都会等待对方释放锁,从而导致死锁。
让我们看一个例子来更好地理解这一点:
有两个 COBOL-DB2 程序正在执行:程序 A 和程序 B。
程序 A 在 ORDERS 表中持有更新锁,而程序 B 在 TRANSACTION 表中持有更新锁。在某个时间点,程序 A 需要对事务表 (TRANSACTION TABLE) 加更新锁,程序 B 需要对订单表 (ORDERS) 加更新锁,但两个应用程序无法在同一页上加更新锁。
因此,两个程序将互相等待对方释放锁,最终进入死锁状态。
如果程序进入死锁状态,COBOL-DB2 程序将失败,错误代码为 -911 和 -913。-911 表示 DB2 发出了自动回滚,而 -913 表示 DB2 未发出自动回滚(DB2 无法执行此操作)。

