sap commit & rollback
来源:互联网 发布:内窥镜软件 编辑:程序博客网 时间:2024/05/30 21:58
1. COMMIT WORK 语句执行许多与任务的同步执行有关的功能。
ROLLBACK WORK语句“取消”任务同步执行的所有请求。
COMMIT WORK 语句进行下列处理:
? 执行所有由PERFORM ON COMMIT 请求的FORM 例程。
按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。
? 如果请求,触发所有更新任务功能模块。
? 如果请求,触发所有后台任务功能模块。
? 触发数据库提交(依次释放数据库锁定)。
? 清空反转日志。
反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。
? 关闭所有打开的数据库光标。
? 将所有TEMSE 对象写入永久性文件或数据库。
TEMSE文件是由于性能原因在执行事务期间缓存的临时序列文件。TEMSE文件的示例有假脱机对象或作业日志。
? 将时间片计数器(用于访问工作进程)复位到0。
系统中的时间片计数器限制工作进程中程序运行的时间量。如果程序常常超过时间片限制,则可以使用COMMIT WORK为程序获得更多时间。
但是,要达此目的,必须很容易将处理分为更小单元(全部或没有操作)。然后可以在每个单元之后插入COMMIT WORK 语句。当然处理单元逻辑上必须独立,因为在发生错误时,不能取消前面的单元中所提交的更新。
ROLLBACK WORK“抛弃”当前事务的所有更新:
? 抛弃所有以前用PERFORM ON COMMIT 登录的FORM例程
? 在更新任务队列中将所有以前请求的更新任务功能标记为错误
? 抛弃所有以前请求的后台任务功能
? 从缓冲存储中删除所有TEMSE对象(临时 连续文件,如假脱机对象和作业日志)
? 触发数据库反转操作(依次释放所有数据库锁定)
? 关闭所有打开的数据库光标
2. 以下情况需使用使用COMMIT和ROLLBACK语句。
1) 通过INSERT、UPDATE和MODIFY语句对数据库进行更新事务后。
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。
3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的所有更改都不能再取消。但是,如果在LUW 中出现了错误,就必须取消已经执行的部分。这意味着当前没有任何插入的行能 永久地保存在数据库中。要撤销当前LUW 对数据库的更改,请使用ROLLBACK WORK,它将取消前一次数据库提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改
ROLLBACK WORK语句“取消”任务同步执行的所有请求。
COMMIT WORK 语句进行下列处理:
? 执行所有由PERFORM ON COMMIT 请求的FORM 例程。
按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。
? 如果请求,触发所有更新任务功能模块。
? 如果请求,触发所有后台任务功能模块。
? 触发数据库提交(依次释放数据库锁定)。
? 清空反转日志。
反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。
? 关闭所有打开的数据库光标。
? 将所有TEMSE 对象写入永久性文件或数据库。
TEMSE文件是由于性能原因在执行事务期间缓存的临时序列文件。TEMSE文件的示例有假脱机对象或作业日志。
? 将时间片计数器(用于访问工作进程)复位到0。
系统中的时间片计数器限制工作进程中程序运行的时间量。如果程序常常超过时间片限制,则可以使用COMMIT WORK为程序获得更多时间。
但是,要达此目的,必须很容易将处理分为更小单元(全部或没有操作)。然后可以在每个单元之后插入COMMIT WORK 语句。当然处理单元逻辑上必须独立,因为在发生错误时,不能取消前面的单元中所提交的更新。
ROLLBACK WORK“抛弃”当前事务的所有更新:
? 抛弃所有以前用PERFORM ON COMMIT 登录的FORM例程
? 在更新任务队列中将所有以前请求的更新任务功能标记为错误
? 抛弃所有以前请求的后台任务功能
? 从缓冲存储中删除所有TEMSE对象(临时 连续文件,如假脱机对象和作业日志)
? 触发数据库反转操作(依次释放所有数据库锁定)
? 关闭所有打开的数据库光标
2. 以下情况需使用使用COMMIT和ROLLBACK语句。
1) 通过INSERT、UPDATE和MODIFY语句对数据库进行更新事务后。
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。
3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的所有更改都不能再取消。但是,如果在LUW 中出现了错误,就必须取消已经执行的部分。这意味着当前没有任何插入的行能 永久地保存在数据库中。要撤销当前LUW 对数据库的更改,请使用ROLLBACK WORK,它将取消前一次数据库提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改
- sap commit & rollback
- Commit、Rollback
- commit &rollback
- Commit/Rollback概念
- COMMIT和ROLLBACK
- COMMIT AND ROLLBACK(
- jdbc事务处理(commit rollback)
- oracle 事务处理 commit rollback
- commit和rollback
- mysql事务rollback&commit
- oracle commit 和 rollback
- commit和rollback
- about commit&rollback
- COMMIT, ROLLBACK AND SAVEPOINT
- mysql commit rollback autocommit
- mysql commit和rollback
- PB中的Commit和RollBack
- commit,rollback的提交及时性
- 十年之后,Pinterest和Instagram谁更牛?
- 2011-2012年实习的总结
- VIM调用函数黑屏解决办法
- 汇编语言基础三 —— 存储器的管理模式
- 各基本数据类型占据的字节
- sap commit & rollback
- Windows下Erlang的编译与运行问题
- 基于DirectShow及Opencv的双摄像头显示(WIN7)
- camshiftdemo.c [OpenCV的sample/c]
- hive sql分区表
- C#线程系列讲座(3):线程池和文件下载服务器
- 【Html5每日练习】canvas五彩缤纷的五角星
- opencv 中图片的旋转--不使用opencv自带的函数
- 万网centos5.4安装