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

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

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 显示仅使用第一个入队进程,则瓶颈是由于其他原因造成的。

相关文章
|
29天前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
36 0
|
29天前
|
SQL Android开发
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
8 0
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
|
25天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
25天前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
16 1
|
25天前
|
人工智能
Suno AI 生成 SAP ABAP 顾问之歌
Suno AI 生成 SAP ABAP 顾问之歌
19 1
|
25天前
|
存储 安全 数据库
SAP ABAP 中数据类型 xstring 的使用介绍
SAP ABAP 中数据类型 xstring 的使用介绍
22 0
|
29天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
29天前
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
12 1
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
|
29天前
SAP ABAP Subscreen 使用介绍试读版
SAP ABAP Subscreen 使用介绍试读版
15 0
SAP ABAP Subscreen 使用介绍试读版
|
29天前
|
Android开发 Windows 缓存
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
10 0
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题