DB2 中死锁的错误代码、原因和示例

当两个应用程序锁定彼此需要的数据时,就会发生死锁情况。两个应用程序都在等待另一个应用程序释放锁,因此发生了死锁。

让我们看一个例子来更好地理解这一点:

有两个 COBOL-DB2 程序在执行:PROG A 和 PROG B。

PROG A 在 ORDERS 表中持有 UPDATE LOCK,而 PROG B 在 TRANSACTION 表中持有 UPDATE LOCK。在某个时间点,PROG A 需要 TRANSACTION TABLE 上的 UPDATE LOCK,PROG B 需要 ORDERS 表上的 UPDATE LOCK,但两个应用程序不能在同一页上放置 UPDATE LOCK。

因此,两个程序将等待对方释放锁并最终进入 DEADLOCK 状态。

如果程序进入死锁状态,COBOL-DB2 程序将失败并显示错误代码 -911 和 -913。-911 表示 DB2 发出了自动回滚,而 -913 表示 DB2 未发出自动回滚(DB2 不可能)。

以上是 DB2 中死锁的错误代码、原因和示例 的全部内容, 来源链接: utcz.com/z/335657.html

回到顶部