SAP在ABAP层有自己的锁,为了实现这个锁,还专门设计了ENQ进程来维护锁数据。(SAP服务器集群架构也因为这个进程大大增加了部署复杂度)在数据库中,我们用自己的表可以实现锁,而数据库里面也数据库层面的锁。然后这个ABAP层的锁也是一个半成品,数据量不能大了,大了就把SM12中的表弄爆。结果我们的开发还是自己搞锁。
请问,SAP ABAP层面的锁有什么存在的意义呢?
SAP ABAP层面的锁是为了解决并发访问冲突的问题。它的存在意义在于,当多个用户同时访问同一个资源时,通过锁的机制来保证数据的一致性。例如,如果两个用户同时对一个订单进行修改,那么锁的作用就是在一个用户完成修改操作之前,阻止另一个用户对同一个订单进行修改。这样可以避免数据的不一致性问题。
需要注意的是,SAP ABAP层面的锁仅能够在单个SAP服务器上工作,如果在SAP服务器集群环境中,则需要使用数据库层面的锁来解决并发访问冲突的问题。
1972 年,德国几位理想者因为一个伟大的想法聚在一起,立志为企业运营创造出一种革命性的单一集成软件解决方案。这几位才俊当时可能没有预料到,他们的想法,后来竟成就了一家世界一流的企业管理软件企业。
同年,这 5 名 IBM 前员工创立了 SAP. 1976 年,约有 30 名 SAP 员工,在 SAP R/1 上支持着大约 50 个客户。SAP R/1 又被称为 SAP RFM, 是 RF (Financial Accounting, 财务会计) 和 RM (Inventory Management/Invoice Verification, 库存管理和发票校验) 模块的衍生工具。
SAP R/1 中的 R 代表 Real Time,即实时处理。如今的 ABAP 开发人员眼中被视为天经地义的 ABAP 应用服务器三层架构,即 Presentation,Application 和 Database 的三层设计,在 SAP R/1 里都合并在同一台物理服务器上,这也是 SAP R/1 中 1 的含义。
当年的 SAP 还没有独立的办公室,SAP 员工直接在客户现场工作。员工们坚信,这样做能有助于开发出客户真正需要的产品,并对其持续优化。
此时的 ABAP,只是被用来简单地根据客户的主数据和事务数据创建展现报表,就像初出茅庐,尚未通过火烧博望坡和火烧新野而崭露头角的诸葛孔明一样,还没有向业界展示出自己真正的潜力。