处理DB2 数据COMMIT和ROLLBACK语句和事务边界
2010-04-05 15:28
429 查看
工作单元和保存点
工作单元(unit of work,UOW) 也称为事务,它是应用程序进程中一个可恢复的(recoverable) 操作序列。UOW 的经典示例是简单的银行转帐事务,即把资金从一个帐号转到另一个帐号中。在应用程序从一个帐号减去一定数量的资金之后,数据库会出现不一致的状态;在第二个帐号中增加同样数量的资金之后,这种不一致才会消除。当这些修改已经提交之后,其他应用程序才能使用它们。
当应用程序进程中的第一个 SQL 语句对数据库发出时,一个 UOW 隐式地开始。同一个应用程序后续的所有读写操作被认为是同一个 UOW 的一部分。应用程序可以在适当的时候发出
保存点(savepoint) 允许选择性地回滚组成 UOW 的操作子集,这样就不会丢失整个事务。可以嵌套保存点并可以同时拥有几个活跃的 保存点级别(savepoint level);这允许应用程序根据需要回滚到特定的保存点。假设在某个 UOW 中定义了三个保存点(A、B 和 C):
回滚到保存点 B 会自动地释放保存点 C,但是保存点 A 和 B 仍然是活跃的。
PS:
COMMIT will not release table locks associated with cursors that have been declared WITH HOLD
工作单元(unit of work,UOW) 也称为事务,它是应用程序进程中一个可恢复的(recoverable) 操作序列。UOW 的经典示例是简单的银行转帐事务,即把资金从一个帐号转到另一个帐号中。在应用程序从一个帐号减去一定数量的资金之后,数据库会出现不一致的状态;在第二个帐号中增加同样数量的资金之后,这种不一致才会消除。当这些修改已经提交之后,其他应用程序才能使用它们。
当应用程序进程中的第一个 SQL 语句对数据库发出时,一个 UOW 隐式地开始。同一个应用程序后续的所有读写操作被认为是同一个 UOW 的一部分。应用程序可以在适当的时候发出
COMMIT或
ROLLBACK语句来结束 UOW。
COMMIT语句将这个 UOW 中所做的所有修改持久化,而
ROLLBACK语句撤消这些修改。如果应用程序正常地结束,而没有发出显式的
COMMIT或
ROLLBACK语句,那么 UOW 会自动地提交。如果应用程序在 UOW 结束之前意外地终止,那么这个工作单元会自动地回滚。
保存点(savepoint) 允许选择性地回滚组成 UOW 的操作子集,这样就不会丢失整个事务。可以嵌套保存点并可以同时拥有几个活跃的 保存点级别(savepoint level);这允许应用程序根据需要回滚到特定的保存点。假设在某个 UOW 中定义了三个保存点(A、B 和 C):
do some work; savepoint A; do some more work; savepoint B; do even more work; savepoint C; wrap it up; roll back to savepoint B; |
PS:
COMMIT will not release table locks associated with cursors that have been declared WITH HOLD
相关文章推荐
- 处理 DB2 数据 COMMIT 和 ROLLBACK 语句和事务边界
- Oracle:数据操作语句 (DML-insert into,update,delete) 部分、事务控制 (TCL-commit,rollback)
- EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数 = 1,当前计数 = 2
- 一个jdbc的例子(包含sql语句的批处理,事务处理,数据绑定prepare)
- jdbc事务处理(commit rollback)
- EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句
- EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句
- EXECUTE后的事务计数指出缺少了COMMIT或ROLLBACK TRANSACTION语句。原计数=0,当前计数=1。
- 关于EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数
- PL/SQL 一个数据对象一个事务(且记录错误信息到处理对象)(rollback,submit)
- oracle 事务处理 commit rollback
- 一个jdbc的例子(包含sql语句的批处理,事务处理,数据绑定prepare,)
- DB2在导入数据时,如果数据量过大,出现事务日志满的错误(Database transaction log is full)该如何解决,commitcount使用
- EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 0,当前计数 = 1。
- 子查询 oracle输入 set语句 MERGE 事务 数据类型 约束 视图 外键
- DB2 9 底子根本(730 检修)认证指南,第 4 部门: 处理 DB2 数据(1)
- mysql事务,select for update,及数据的一致性处理
- DB2处理数据由原来六小时优化到二十分钟(二)
- MySQL事务回滚rollback与提交commit的操作
- Oracle笔记(七) 数据更新、事务处理、数据伪列