General Memory Organization

更新时间:2023-05-10 06:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

General Memory Organization This section describes the memory organization from the perspective of an ABAP program, or which memory can be accessed by an ABAP program. For a more general and technically more detailed description, see the documentation.

The following diagram shows the general memory organization of ABAP programs up to the level of the internal session:

Application Servers

The application layer of an ABAP-based SAP system can be distributed across several . If an ABAP system has more than one application server, these are normally installed on different computers. It is also possible, however, for several application servers of one or more ABAP systems to be installed on the same host computer.

Every application server has access to the central database of the SAP system. Each application server has its own . The ABAP runtime environment uses the shared memory for programs, program data, and buffers (for example, in ). ABAP programs can store and in the shared memory.

Note

The shared memory is frequently used and may therefore become a sparse resource, which can result in bottlenecks when explicitly storing data from ABAP programs.

User Session

Logging on to an application server opens a . A user session is assigned its own memory area of the , in which can be stored. An additional user session can be opened by the program using a with the destination "NONE". Main Session

For every user session, a is opened. Each main session is assigned its own memory area of , in which can be stored.

Additional main sessions for a user session can be opened using a with the addition STARTING NEW TASK, or by entering a

transaction code after "/o" in the input field of the . As of release 7.0, 16 main sessions are permitted for each user session. Before release 7.0, the maximum number was 6. The actual possible number for a particular system is defined using the system parameter rdisp/max_alt_modes, which has a default value of 6.

Internal Session

Each of an ABAP program creates a new , in which the called program is loaded.

The memory area of an internal session is divided into a and a . This contains the of a program. Technically, roll areas and the PXA are stored in the shared memory of the application server, where they are administrated by SAP Memory Management .

In one main session, there can be a maximum of nine internal sessions, which always belong to a . Data from the ABAP memory is always assigned to a call sequence.

On 64-bit platforms, an internal session can theoretically require up to 4 TB of memory. On 32-bit platforms, the theoretical upper limit is 4 GB. The practical upper limit is usually below the theoretical limit, since the actually physically installed main memory is the maximum available and it is divided up amongst all users.

Note

Instances of classes, with the exception of , are located in the internal session. It is therefore not possible to store references to the ABAP memory.

Shared Memory与Shared Buffer的区别

The two application buffers differ in respect to how the system behaves when reaching the memory limit. Both application buffers can be filled to an internal maximum limit, which can be adjusted using the

rsdb/esm/buffersize_kb (SHARED MEMORY) and rsdb/obj/buffersize (SHARED BUFFER). Before the maximum limit of the buffer of SHARED MEMORY is reached, you must free some space using the statement DELETE FROM SHARED MEMORY, otherwise this leads to a treatable exception. The buffer of SHARED BUFFER is automatically cleared by a displacement procedure when it reaches the maximum limit. This procedure deletes the least used data objects from the buffer.

本文来源:https://www.bwwdw.com/article/c7xe.html

Top