abap/shared_objects_out_of_mem_dump: Tracing of the shared objects memory usage

Short text

Tracing of the shared objects memory usage

Parameter Description

You can use this profile parameter to control the logging of additional information to analyze memory bottlenecks in the shared objects memory. In normal operation, it should have the default value and you should only change its value temporarily for analysis purposes.

If there are frequent terminations in the system due to a lack of shared objects memory (exception CX_SHM_OUT_OF_MEMORY or runtime error SYSTEM_NO_SHM_MEMORY), you need information about the usage of the shared object memory to analyze the problem. If the terminations occur during online transactions, you can use transaction SHMM to examine the usage of the shared objects memory. However, if the terminations occur in background processing runs, the use of transaction SHMM is insufficient. It is therefore important that the memory usage of the shared object memory is automatically logged when the exception CX_SHM_OUT_OF_MEMORY or the runtime error SYSTEM_NO_SHM_MEMORY is triggered. You can use the profile parameter abap/shared_objects_out_of_mem_dump to control this automatic logging.

You can use the profile parameter abap/shared_objects_out_of_mem_dump with the keyword mode to set three different modes:

  • mode = off: Automatic logging is deactivated.
  • mode = exception: The shared objects memory usage is logged if the exception CX_SHM_OUT_OF_MEMORY or the runtime error SYSTEM_NO_SHM_MEMORY is triggered.
  • mode = dump: The shared objects memory usage is only logged if the runtime error SYSTEM_NO_SHM_MEMORY is triggered.

The logging is performed in the work process trace of the work process currently in use. After the current memory usage has been logged, to avoid unnecessary trace entries, no new logging of this type is performed for a specific period of time if a memory bottleneck occurs again. The default value for this period of time is 120 minutes. You can override this by specifying:

  • interval = <time in minutes>

The next occurrence of a memory bottleneck is always logged after a change to the profile parameter abap/shared_objects_out_of_mem_dump.

By default, the name of the shared memory area with the occupied memory of all its area instances is recorded in the work process trace after the ID “ShoMemAreaUse”. However, sometimes it is necessary to know the precise memory usage of the instances. In this case, you need to specify the option

  • area = <shared objects area name>

You need to specify the area name in uppercase letters. In this case, the output in the work process trace consists of the introductory line “ShoMemInstUse for <shared objects area name>” and then the ist of all instances of the area and their memory usage. The individual lines in the list are output with the ID “ShoMemInstUse”.

Application Area

ABAP

Parameter Unit

The profile parameter is interpreted as a string by the kernel.

Default Value

mode=off

Who is permitted to make changes?

Customer

Operating System Restrictions

None

Database System Restrictions

None

Are other parameters affected or dependent?

None

Values allowed

General syntax:

mode = [ off | exception | dump ] { ; interval = <time in minutes> } { ; area = <shared objects area name> }

Example 1: If the runtime error SYSTEM_NO_SHM_MEMORY occurs, you want to log the memory usage of all shared objects. After the data has been logged, you want to wait 55 minutes before logging

again.mode = dump; interval = 55

Example 2: If the runtime error SYSTEM_NO_SHM_MEMORY or the exception CX_SHM_OUT_OF_MEMORY occur, you want to log the memory usage of all instances of the shared object area CL_MY_SHM_AREA:

mode = exception; area = CL_MY_SHM_AREA

In example 2, the system waits 120 minutes before logging the memory usage again.

You May Also Like

Leave a Reply?