SAP Shared Object 01 (共享对象)

介绍

共享对象是在共享内存中的一个对象。共享内存是应用服务器中的一个内存区域,可以被应用服务器中的所有程序访问。

在共享对象出现之前,ABAP使用EXPORT 和 IMPORT语句实现内存区域中内容的共享。

 EXPORT和IMPORT实现效率比较低下:因为发送方首先将需要传递的变量复制到内存中,然后接收方再从内存中将变量复制到接收方程序中,这两次复制基本上没有产生任何实际的意义。

共享内存通过存储共享对象的共享对象内存得到增强。共享对象通过共享内存区域被存储。可以通过事务代码SHMA对共享内存区域的进行创建和管理。

启用共享内存的类

将类的实例存储在共享内存中的前提是对象的类必须在CLASS语句中使用SHARE MEMORY ENABLED进行定义,或者在类编辑器中选择“共享内存启用”标识。

每一个区域都和全局区域根类相关联。该根类可以包含单独的数据和对其他启用共享内存的类实例的引用,或者在自己的属性中对匿名数据对象的引用。

区域类和区域抓手

当时用SHMA定了一个区域后,会同时创建一个相同名字的全局最终区域类,该全局类为CL_SHM_AREA(CL_ABAP_MEMORY_AREA的子类)的子类。

 在ABAP程序中,使用生成的区域类的方法专门访问区域中的数据。有一些静态方法可以将ABAP程序(或其他内部session)绑定到内存共享中的区域实例(attach methods)。

绑定创建区域类的实例作为区域抓手,同时会创建一个锁。

ABAP程序可以使用区域抓手访问绑定的区域实例版本,进而访问存储在共享对象中的数据。区域抓手还包含删除连接或锁定的方法(detach methods)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值