AS ABAP 的应用层可以分布在多个应用服务器上。 如果一个 AS ABAP 有多个应用程序服务器,它们通常在不同的计算机上实例化。 然而,一个或多个 AS ABAP 的多个应用程序服务器也可以在同一主机上实例化。 事务 SM51 显示当前 AS ABAP 的应用程序服务器及其实例化的计算机的概览。 当前应用程序服务器所在的计算机的网络名称可以从 ABAP 程序中的系统字段 sy-host 中获取。
下图是笔者登录的 ABAP 服务器 SM51 事物码的截图:
User Session
登录到应用程序服务器会打开一个用户会话。 使用 SAP GUI、RFC 接口或 ICF(包括 APC)进行登录。 用户会话被分配了它自己的用户内存区域,其中可以存储 SPA/GPA 参数。 执行 ABAP 程序时,有各种类型的用户会话和适用的各种规则:
- Dialog sessions
- Background sessions
- Update sessions
- RFC sessions
- ICF sessions
- APC sessions
每个应用程序服务器都可以访问中央 AS ABAP 数据库。 每个应用程序服务器都有自己的共享内存。 ABAP 运行时环境将共享内存用于程序、程序数据和缓冲区(例如,在 SAP 缓冲中)。 ABAP 程序可以在共享内存中存储共享对象和数据簇。
从用户会话中,可以以程序驱动的方式在同一应用程序服务器或另一台服务器上打开更多用户会话。 例如:
- 目标为“NONE”的远程函数调用在同一应用程序服务器上打开用户会话。
- 使用 COMMIT WORK 调用更新模块或在后台编程中执行可执行程序会打开单独的用户会话。
- ICF 客户端和 APC 客户端可以将当前应用服务器或其他服务器作为 ICF 服务器或 APC 服务器进行寻址,从而打开新的用户会话。
使用配置文件参数 rdisp/tm_max_no
配置最大用户会话数。 配置文件参数 rdisp/rfc_max_login 确定可以使用 RFC 接口打开的会话百分比。