SAP Infinite Transaction with Update 的一个具体例子

简介: SAP Infinite Transaction with Update 的一个具体例子

在计算机科学中,事务是一组操作的集合,这些操作要么全部成功执行,要么全部回滚,以确保数据的一致性和完整性。

某些企业管理软件的业务事务,被实现为 Infinite Transaction,以节省事务开始时的初始化时间

这种设计离不开乐观锁, 因为乐观锁在更改实际发生之前不会转换为排他锁(E 锁,全称为 Exclusive Lock). 锁的更新部分被传递到更新过程,并在更新完成后释放。 乐观锁的对话部分保持原样。

看个实际的例子。

8cf116b53d5ed37dac89fb35fada9451.png

  1. 首先调用锁定模式为O且_SCOPE=1的功能模块(1),因为 _scope = 1, 意味着该锁只有一个所有者:即上图所示的对话框所有者 E_1。


  1. 在事务过程中,首先请求 _SCOPE=2 的相同锁,并将另一个所有者 (E_2) 添加到其中 (2)。 这个锁现在有两个 owner.


  1. 如果要更改数据,则将锁的更新部分转换为E锁。 这是通过使用锁定模式“R”和_SCOPE=2 来调用 Enqueue Function Module 完成的。 此操作会产生两个锁(见下图):对话所有者的 O 锁和更新所有者的 E 锁。


然后调用更新任务 (4) 并执行 COMMIT WORK (5)。


COMMIT WORK调用更新任务,该任务继承E锁和更新所有者E_2。 同时,为对话事务 (E_x) 创建一个新的更新所有者。


更新结束时,这些锁将被释放。 现在,再次存在具有对话框所有者 E_1 但没有更新所有者的锁(参见下图)。

1cc66524e3fb4d1e3b89bb16a7efb3ff.png

上图显示了本示例中这些操作设置了哪些锁、锁具有哪些类型以及它们拥有哪些所有者(带有累积计数器)。

锁定操作按时间顺序从上到下进行。

相关文章
SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog ‘3’ -
SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog ‘3’ -
SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog ‘3’ -
SAP MM Error message - Customizing incorrectly maintained – in transaction code ML81N
SAP MM Error message - Customizing incorrectly maintained – in transaction code ML81N
SAP MM Error message - Customizing incorrectly maintained – in transaction code ML81N
SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-
SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-
SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-
SAP Fiori应用中事务锁的实现 - Transaction Lock实现机制
SAP Fiori应用中事务锁的实现 - Transaction Lock实现机制
SAP Fiori应用中事务锁的实现 - Transaction Lock实现机制
使用SAP Transaction Launcher将ABAP Webdynpro嵌入到WebClient UI中
使用SAP Transaction Launcher将ABAP Webdynpro嵌入到WebClient UI中
160 0
使用SAP Transaction Launcher将ABAP Webdynpro嵌入到WebClient UI中
How SAP concrete schema id is got based on transaction type plus catalog type
How SAP concrete schema id is got based on transaction type plus catalog type
105 0
How SAP concrete schema id is got based on transaction type plus catalog type
SAP ABAP实用技巧介绍系列之 通过ST03G查询指定transaction的trace data
SAP ABAP实用技巧介绍系列之 通过ST03G查询指定transaction的trace data
181 0