回滚后如何保持资源上的锁?
当任何应用程序使用表、表空间等资源时,DB2 会在这些资源上放置锁。在 COBOL-DB2 程序中,如果我们正在修改或删除表中的数据,则 DB2 会放置锁。当我们使用 ROLLBACK 语句来恢复数据库中所做的更改时,DB2 保持的所有锁都会默认释放。
如果我们希望即使在回滚后也能保持对资源的锁定,则必须使用 ON ROLLBACK RETAIN LOCKS 代替 ROLLBACK。
例如,考虑一个使用 FOR UPDATE OF 子句声明的游标 ORDER_CUR。因此,一旦游标打开,就会获取所有限定行的锁。

在上述流程中,我们使用了“SAVEPOINT A ON ROLLBACK RETAIN LOCKS”。因此,当 ORDER_CUR 打开时,在限定行上放置的锁在回滚将数据库状态恢复到保存点 A 后不会被释放。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP