When the requested result set of a user when executing a query is larger and had many calculations which ended up in filling the buffer space with no shared memory left, resulting in the Exception with the type CX_SY_EXPORT_NO_SHARED_MEMORY. This blog explains how to overcome it by setting parameters in the instance profiles rsdb/esm/buffersize_kb for Size in the shared memory and rsdb/esm/max_objects to set the Number of the objects that can be buffered.
Profile Parameters for the export/import Buffer
We can set the Size in Shared memory and Number of objects that can be buffered to resolve CX_SY_EXPORT_NO_SHARED_MEMORY error which results during query execution. We can achieve this by setting the profiles parameters rsdb/esm/max_objects and rsdb/esm/buffersize with the BASIS.
The default setting of profile parameters rsdb/esm/max_objects and rsdb/esm/buffersize for the export/import buffer, for the ESM (export/import-shared-memory) buffer are
Size in the shared memory:
rsdb/esm/buffersize_kb [in kilobytes]
Default: 4,096 [kB]
Maximum: 2,097.148 [kB]
Number of the objects that can be buffered (directories):
NOTE: Size restrictions applicable for kernel Release 3.I to 6.20 with a patch number lower than 1129 and will not be applicable for releases above this level.When the exception in caught the above error is displayed.
Below is the Screen Shot for reference:
Below is the screen shot of Profile Parameters with default settings.Execute the transaction ST02 , Current Parameters,Results to Profile Parameters to SAP Buffers.
We can set the parameters rsdb/esm/buffersize_kb for Size in the shared memory and rsdb/esm/max_objects to set the Number of the objects that can be buffered in the instance profiles by selecting the profile and going with Profile Maintenance option in the above screen shot.
Which inturn can be maintained with transcation RZ10
Need to have the authorization to object S_RZL_ADM in the SAP system. On selecting the Instance Profile and extended maintenance, we can maintain the required profile parameters.
On further navigation, will be driven to R/3 profiles.
On increasing the rsdb/esm/buffersize_kb for Size in the shared memory to the maximum possible (e.g. above 30 MB), the exception CX_SY_EXPORT_NO_SHARED_MEMORY can be resolved.
The profile parameters for the dimensioning of the following buffers are:
1. Export/import buffer:
You can use the ABAP command EXPORT TO SHARED BUFFER to save data clusters in a general work process buffer, the export/import buffer (or shared buffer).
2. ESM buffer:
As of kernel Release 6.10, you have an additional new ABAP command EXPORT TO SHARED MEMORY, that you can use to save data clusters in the export/import shared memory buffer (or ESM buffer for short).
3. OTR buffer:
The online text repository buffer is available as of kernel Release 6.10. Here texts are saved that are used in BSP for example.
4. CUA buffer:
The runtime objects of the GUI interface are stored in the CUA buffer. These are saved on the database in the tables D345T, D346T and D342L.
Following points are to be considered for increasing the buffer parameters in the SAP profile:
- System must have enough main memory. The main memory is limited, especially on 32-bit platforms, so any increase in the buffer must be in line with existing memory management.
- We cannot prescribe definite guide values for optimal buffer sizes. The appropriate sizes depend on the hardware, release level, dataset in the system and applications used.
- For profile changes to take effect. System must be restarted.