SAP Shared Memory in ABAP – check and configuration

ABAP Shared Objects represent special regions in the shared memory of an application server which can be accessed from ABAP applications in order to share common data.

Possible error

Sometimes in system You can find below dump: SYSTEM_NO_SHM_MEMORY

ST22 DUMP – SYSTEM_NO_SHM_MEMORY

Read below what’s You should do in this situation…

Check Shared Memory

In ABAP instance You can check Shared Memory in transaction SHMM, e.g.

Shared Object Overview

You can change tab on: “Areas” to see which area allocate the most memory, e.g.

Shared Memory – Areas

For example in CRM systems areas such as CL_BSP_WD_SHM_AREA or CL_CRM_GENIL_MODEL_SHM_AREA are the most memory-consuming areas.

What can we do in this situation?

You have few options to release memory:

  1. In transaction SHMM, You can manually invalidate the area CL_BSP_WD_SHM_AREA and others. Select the area and choose “Invalidate” to flag all the area instances as obsolete and trigger a rebuild of the area. Existing applications keep running but restarted applications use the updated area version.

2. In transaction SHMA, You can change the runtime properties of the area CL_BSP_WD_SHM_AREA as Customizing. You can set the lifetime to a value lower than 1 day. The same option is available in SHMM transaction -> on the bar, select an optionon the bar, select an option “Management“.

3. You can also do something more ugly 😉 Double click on area: CL_BSP_WD_SHM_AREA. Next change Tab on “Lock” like on below screen. Now select the appropriate records and click icon: “Delete Lock”. Before you do this, pay attention to on column with date and version.

Shared Memory – Lock

4. Sometimes simply above points don’t resolve our problem with shared memory. Then we have to change the parameter, which increase the amount of memory. I have in mind parameter: abap/shared_objects_size_MB or em/initial_size_MB if You use Zero Memory Managnmet in Your system.