首页 > 其他分享 >关于 SAP ABAP 锁机制的一些疑问和解答

关于 SAP ABAP 锁机制的一些疑问和解答

时间:2023-08-16 11:23:06浏览次数:43  
标签:入队 应用程序 enqueue ABAP 进程 服务器 SAP 解答

Lock table 的位置

Lock Table 位于 Enqueue Server 的主内存(共享内存)中。

如果 enqueue 服务器作为 enqueue 工作进程安装,则该实例的所有工作进程都可以访问锁表。 外部应用服务器在 enqueue 服务器上的入队过程中执行其锁定操作。

二者的通信,通过相关调度程序(dispatcher)和消息服务器进行。

如果使用独立 enqueue 服务器,则所有工作进程都直接与 enqueue 服务器通信。

服务器重启后,主存里还可能存在锁记录吗?

可能。从 Update task 继承下来的锁,保存到 ABAP 服务器存储介质里,当系统重启时,会被重新加载到 lock table 中。

Enqueue 函数调用完毕之后,系统变量 SY-MSGV1 存放了当前 lock 的 owner 名称。

@ 符号在 SAP 锁(排队)中用作通配符。 换句话说,它可以在锁的冲突检查期间代表任何其他字符。 例如,参数值 12345@ 锁定数量 123450 到 123459、12345a 到 12345z、12345A 到 12345Z,以及第 6 个字符位置中具有任何特殊字符的所有其他值。

为了防止SAP锁在不需要的时候激活通配符机制,需要保证在调用enqueue功能模块时,键值参数不包含任何通配符。

如果要用于锁定单个实体的键值确实包含通配符,则必须在调用 enqueue 函数之前,将通配符替换为不同的字符。

每个 SAP 系统只有一台应用程序服务器充当 enqueue 服务器。 它维护位于共享内存段中的锁表。

enqueue 服务器上的所有工作进程都可以访问锁表。 其他应用程序服务器上的所有工作进程将其上锁请求委托给 enqueue 服务器上的特殊入队工作进程。

该行为是自动配置的。 在默认配置文件 DEFAULT.PFL 中,参数行 rdisp/enqname =<应用程序服务器名称> 告诉开发人员哪个应用程序服务器可用作排队服务器。 当应用程序服务器检测到其名称与排队服务器的名称匹配时,它会创建锁表,并且其所有工作进程都会内联处理排队请求。 如果应用程序服务器检测到其名称与入队服务器的名称不匹配,则会将所有入队请求发送到入队服务器。

排队工作流程保证立即处理传入的请求。 通常一个入队过程就足够了。 在具有许多应用程序服务器的大型 SAP 系统中,第二个进程可能会很有用。 然而,定义两个以上的入队进程并不方便。 如果事务 SM50 CPU 显示仅使用第一个入队进程,则瓶颈是由于其他原因造成的。

标签:入队,应用程序,enqueue,ABAP,进程,服务器,SAP,解答
From: https://www.cnblogs.com/sap-jerry/p/17633550.html

相关文章

  • SAP CDS view 源代码中的 $projection
    我们看到下图CDSview源代码里association条件中的$projection.在SAPCDS(CoreDataServices)中,$projection是一个特殊的关键字,用于在查询中选择特定的字段并创建一个临时视图。它可以在CDS视图的源代码中使用,以对结果集进行处理和转换。通过使用$projection,可以根据需要......
  • 什么是 SAP CDS view 的 exposed Association
    SAPCDS是SAPHANA数据库中的一种新的数据定义语言。它允许开发者定义语义富裕的数据模型,这些数据模型可以以数据库独立的方式在ABAP服务器上使用。因此,通过CDS,开发者可以创建复杂的视图来构建ABAP程序或应用。关联(Association)在CDS视图中是一个非常重要的概念。它在C......
  • SAP CRM 的 pricing 数据库表 PRCD_HEAD
    在SAPCRM系统中,PRCD_HEAD是一个重要的数据库表,用于存储定价计划(PricingPlan)的主要信息。定价计划是一个关键的概念,它定义了在销售和定价过程中使用的价格策略和规则。PRCD_HEAD表记录了每个定价计划的基本属性和配置信息,以支持在销售交易中正确地应用定价。以下是一个详细说明S......
  • 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*&*&---------------------------------------------------------------------**&*&*&-------------......
  • 关于 SAP Lock Owner 问题的讨论
    在SAP事务开始时,始终会创建两个所有者(Owner)并可以请求锁定。一把锁可以有一个或两个所有者,分别是对话所有者和更新所有者。可以在_SCOPE参数中指定所有者的个数。默认为2即2个所有者:要找出当前持有锁的用户,请使用FunctionModuleENQUEUE_....这会将当前持有锁的......
  • SAP ABAP Lock 的 Collision Check 机制介绍
    SAPABAP系统使用CollisionCheck机制来检查锁请求是否与现有锁冲突。如果发生冲突,对话事务的用户会收到一条消息,指示所请求的对象当前已被不同的用户锁定。注意:对于非对话工作进程(在批量输入中),稍后会再次发出锁定请求。SAP官方文档中对collisioncheck机制的描述:There......