SAP ABAP Netweaver 里的 ABAP 会话概念

简介: SAP ABAP Netweaver 里的 ABAP 会话概念

每个用户会话可以包含一到多个 ABAP 会话。 每个 ABAP 会话都分配有自己的 ABAP 内存区域,其中可以存储数据簇。 调用序列的程序共享对这些集群的访问权。


可以按如下方式在同一个用户会话中打开新的 ABAP 会话:


  • 在工具栏中的命令字段中的“/o”之后输入事物码。
  • 调用功能模块TH_CREATE_MODE。
  • 在处理异步 RFC 时调用 dynpro。 为此,RFC 客户端需要一个额外的 ABAP 会话来与 SAP GUI 进行通信。

每个用户会话最多可以有 16 个 ABAP 会话。 系统实际可能的会话数由配置文件参数 rdisp/max_alt_modes 确定,其默认值为 6。


下图是笔者 ABAP 系统上 RZ11 事物码打开上述参数的截图:


image.png


每次调用 ABAP 程序都会创建一个新的内部会话,在该会话中加载被调用的程序。


内部会话的内存区域称为 poll area,它本身分为堆和堆栈区域。这是保存程序的可修改对象的地方。不可修改的程序数据存储在 PXA 中。poll area 包含对 PXA 中必要数据的引用。从技术上讲, poll area 和全局 PXA 存储在应用程序服务器的共享内存中,由 SAP 内存管理负责。


在一个 ABAP 会话中,最多可以有九个内部会话,它们始终属于一个 call sequence(即调用序列). ABAP 内存中的数据总是分配给一个调用序列。


在 64 位平台上,一个内部会话理论上最多需要 4 TB 的内存。在 32 位平台上,理论上限为 4 GB。实际上限通常低于理论限制,因为实际安装的主内存是可用的最大值,并在所有消费程序之间分配。


所谓调用序列,是一组程序,其内部会话通过使用 SUBMIT … AND RETURN 或 CALL TRANSACTION 的调用序列在 ABAP 会话中共同加载。



相关文章
|
5月前
|
JSON 应用服务中间件 API
使用 ABAP 代码消费 SAP 系统的 OData 服务
使用 ABAP 代码消费 SAP 系统的 OData 服务
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
|
12月前
|
存储
什么是 SAP ABAP 服务器的 Addon
什么是 SAP ABAP 服务器的 Addon
|
5月前
|
数据库 开发工具 Windows
聊聊 SAP ABAP 系统的 ABAP 对象注册表 TADIR试读版
聊聊 SAP ABAP 系统的 ABAP 对象注册表 TADIR试读版
|
11月前
|
JSON JavaScript 前端开发
一种在 ABAP 端扩展 SAP Fiori 应用的方法介绍
一种在 ABAP 端扩展 SAP Fiori 应用的方法介绍
|
11月前
|
Windows
关于 SAP ABAP OLE 技术和一些局限性介绍
关于 SAP ABAP OLE 技术和一些局限性介绍
SAP ABAP Netweaver 里的 ABAP 会话概念
SAP ABAP Netweaver 里的 ABAP 会话概念
|
12月前
|
存储 数据挖掘 大数据
什么是 SAP ABAP AMDP?
什么是 SAP ABAP AMDP?
|
12月前
|
BI 图形学
什么是 SAP ABAP 的 HPGL
什么是 SAP ABAP 的 HPGL
|
存储 应用服务中间件 数据库
SAP ABAP Netweaver 里的用户会话概念
SAP ABAP Netweaver 里的用户会话概念