首页 > 其他分享 >什么是 SAP ABAP Lock Mode 的 cumulative 特性

什么是 SAP ABAP Lock Mode 的 cumulative 特性

时间:2023-08-16 11:37:20浏览次数:46  
标签:事务 cumulation LUW lock cumulative ABAP Lock SAP

SAP 官网提到:

If the name, argument, and lock mode of the elementary lock are identical, and if a lock is not exclusive and non-cumulative, it can be set more than once (a cumulation). The cumulation counter is incremented by one with each successive cumulation, and reduced by one each time a lock is released. The lock is released when the counter reaches zero.

如果传入加锁函数的输入参数的锁的名称、上锁参数和锁定模式相同,并且如果上锁模式既不是排他性的也不是累积性的,那么它可以被多次设置。多次设置这种锁的行为称之为累积。每次连续累积时,锁的累积计数器会增加一次,并在释放锁定时递减一次。当计数器达到零时,锁会被释放。

在SAP系统中,事务码SM12用于管理和监视锁定信息。锁定是一种机制,用于控制并发访问数据库中的数据,以确保数据的一致性和完整性。当一个事务获取了对某个数据对象的锁定时,其他事务就不能修改或访问该数据对象,从而避免了数据冲突和不一致性。

其中上图的 Counter 1 和 Counter 2,分别代表 dialog ownerupdate owner 持有的 lock enter 对应的 cumulation counter 计数器,如 SAP 官网 记录所示:

选择 Goto-Details 能看到对应的 Lock Object 名称:

注意上图的 Date 字段,并不是上锁的准确时间,而是 SAP LUW (Logical Unit of Work) 的起始时间。SAP Lock 在该 LUW 里创建,时间晚于 LUW 的起始时间。

SAP LUW(Logical Unit of Work)是 SAP(Systems, Applications, and Products)系统中的一个概念,它是数据库事务的一部分,涵盖了一个业务过程中的所有步骤。它在开始时打开一个数据库事务,在完成后提交该事务。

SAP LUW 的主要特性包括:

  1. 一致性:所有的数据库更新都应该在一个 LUW 中保持一致。也就是说,如果所有操作都成功,则所有更改都应该被保存。如果有任何一个操作失败,则应该撤销所有更改。

  2. 原子性:LUW 应该被视为一个不可分割的单元。这意味着,要么所有的操作都成功,要么所有的操作都失败。

  3. 隔离性:每个 LUW 都应该被隔离开来,使得它不会被其他 LUW 中的操作所影响。

  4. 持久性:一旦一个 LUW 被成功提交,它的结果应该是永久的,即使在系统故障的情况下也是如此。

标签:事务,cumulation,LUW,lock,cumulative,ABAP,Lock,SAP
From: https://www.cnblogs.com/sap-jerry/p/17633570.html

相关文章

  • 关于 SAP ABAP 锁机制的一些疑问和解答
    Locktable的位置LockTable位于EnqueueServer的主内存(共享内存)中。如果enqueue服务器作为enqueue工作进程安装,则该实例的所有工作进程都可以访问锁表。外部应用服务器在enqueue服务器上的入队过程中执行其锁定操作。二者的通信,通过相关调度程序(dispatcher)和消息......
  • SAP ABAP 系统中的 Lock Object
    作为一个SAP资深技术专家,很高兴为您解释SAPABAP系统中的LockObject概念。LockObject是在SAP中用于管理并发性(Concurrency)和数据一致性(Consistency)的机制,确保在多用户同时访问数据时不会发生冲突。LockObject概念:在SAPABAP中,LockObject是一种机制,用于控制和协......
  • 什么是 SAP ABAP 系统的 LUW (Logical Unit of Work)概念
    在SAPABAP系统中,数据库LUW是一个关键概念,用于管理数据库操作的一致性和隔离性。数据库LUW(LogicalUnitofWork)的概念:在SAPABAP系统中,数据库LUW是一组数据库操作的逻辑集合,这些操作要么全部成功地提交到数据库,要么全部回滚。它确保了数据库操作的一致性和隔离性。在SAPABAP中......
  • ABAP HR 获取薪酬
    1DATA:2l_indexLIKEsy-tabix,3lt_rgdirTYPETABLEOFpc260,"payrollcluster4lw_rgdirLIKELINEOFlt_rgdir,5lt_rgdir_aTYPETABLEOFpc260,"payrollcluster6lw_rgdi......
  • SAP CRM One Order 锁定模式用的是 Exclusive Lock
    在SAPCRMWebClientUI上点击Edit按钮后,界面进入可编辑状态:后台SM12事务码观察到锁类型为E,即Exclusivelock,也就是排他锁。其中PRCD_HEAD是Pricing模块抬头级别的数据:CRMOneOrder对应的lockobject名称为:E_CRM_ORDER关于这个叫做prospect的必填字......
  • ABAP EXCEL批导和查看自建表样板
    结果:  内文:  源代码:ZHMRFI017:*&---------------------------------------------------------------------**&ReportZHMRFI017*&*&---------------------------------------------------------------------**&*&*&-------------......
  • Python中threading模块 lock、Rlock的使用
    一、概述在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock、Rlock、Semaphore、Event、Condition用来保证线程之间的同步,后者保证访问......
  • 关于 SAP Lock Owner 问题的讨论
    在SAP事务开始时,始终会创建两个所有者(Owner)并可以请求锁定。一把锁可以有一个或两个所有者,分别是对话所有者和更新所有者。可以在_SCOPE参数中指定所有者的个数。默认为2即2个所有者:要找出当前持有锁的用户,请使用FunctionModuleENQUEUE_....这会将当前持有锁的......
  • SAP ABAP Lock 的 Collision Check 机制介绍
    SAPABAP系统使用CollisionCheck机制来检查锁请求是否与现有锁冲突。如果发生冲突,对话事务的用户会收到一条消息,指示所请求的对象当前已被不同的用户锁定。注意:对于非对话工作进程(在批量输入中),稍后会再次发出锁定请求。SAP官方文档中对collisioncheck机制的描述:There......
  • 什么是 SAP Lock 机制中的 Lock Table
    SAPABAP系统里,当我们调用SAPLockObject生成的EnqueueFunctionModule对一条数据库表记录上锁时,就会在SAPLockTable中生成一条记录。SAPLock体系中的LockTable位于中央实例的主存(共享内存)中。中央实例中的所有WorkProcess都可以访问锁表。外部应用程序服务......