Register Login

SYSTEM_IMODE_TOO_LARGE runtime error

Updated May 30, 2018

Internal modes uses more than 2 GB

The 'SYSTEM_IMODE_TOO_LARGE' runtime error is primarily triggered incase a user context, or more specifically, an internal session attempts to use more than 2 GB of main memory. The restriction to 2 GB is because of the fact that contracted 32-bit variables have been used frequently. The system is capable of displaying the memory sizes up to 4 GB, with the unsigned 32-bit variables.

Solution

As of SAP_BASIS 6.20 Support Package 38, internal session can be bigger than 2 GB and even larger than the 4 GB on 64-bit hardware. The user can go ahead and set the buffers for database tables and many other buffers for values higher than 2 or 4 GB. This Support Package has been available for the users since the end of March 2004. The Support Package necessitates the 6.20 kernel patch level 1269 or higher. The SYSTEM_IMODE_TOO_LARGE runtime error then no longer occurs. As of SAP_BASIS 6.40, this function is included in the system, even if the user has not imported the additional Support Packages. For Releases 4.6B to 6.10, a patch similar to this cannot be made available, so the restriction to 2 GB is still applicable.

If the 'SYSTEM_IMODE_TOO_LARGE' runtime error occurs, we therefore recommend that you consider the following:

  • Has the user been using the application as intended? For instance, a memory bottleneck may take place if the user selects too much data.
  • Does the memory consumption of the application vary on customizing parameters whose settings may be incorrect?
  • Does the application program utilize the memory economically? For instance, you must explicitly delete the contents of an internal table (FREE statement) before reusing the memory.  This is critical, particularly incase the transactions run for a long time. Furthermore, user can only use the garbage collector for releasing objects (class instances) and dynamically generated data objects incase, they can no longer be accessed by using references; user must delete the relevant reference variables.  For examining this question, create a customer message for the appropriate component of your application program.

The "Memory Inspector" is a tool which can be used for analyzing the memory consumption of ABAP programs. This tool is available as of SAP_BASIS 6.40 and SAP_BASIS 6.20 Support Package 29.  Among other things, the "Memory Inspector" showcases ranked lists of large internal tables, strings and dynamically generated (data) objects.  Additionally, the tool showcases the dependencies between the individual objects; this permits the users to analyze why certain objects cannot be released by the garbage collector. Document 649327 comprises of additional information regarding analyzing memory consumption for these and earlier releases.

For Releases 4.6B to 6.10, the user can use a profile parameter that is not generally released for increasing the maximum size of an internal session from 2 GB to 4 GB. However, most monitoring tools are not equipped to correctly display values higher than 2 GB; this is applicable to transactions SM04, SM50, ST02, ST03, SE30, the memory consumption showcases in the debugger, some outputs in trace files and other locations within the system. Therefore, we can only provide limited support for internal sessions more than 2 GB.  If you increase the maximum size of an internal session from 2 GB to 4 GB, user does so at his risk. We shall not be held responsible for errors caused by the internal sessions over 2 GB. We cannot provide any guarantee that no other errors than those mentioned here will take place.  

The user can import the patch contained in Document 833336 for resolving the problem with the ABAP garbage collector that take place in the 32-bit kernel and the IBM iSeries incase an internal session utilizes more than 3.4 GB. At present, we do not know any other errors that would seriously impair the productive use of the application.  We can provide the name of the profile parameter and information related to the use of this profile parameter on request. For requesting this information, create a customer message for the BC-ABA-LA component. As the profile parameter is not generally released, user cannot set it in the central profile (default profile); user can only set it in the instance profiles. As of SAP_BASIS 6.20 Support Package 38 and SAP_BASIS 6.40, user is not required the profile parameter. Hence, delete this parameter from the profile; else there is an upper limit of 4 GB.

The 'SYSTEM_IMODE_TOO_LARGE' runtime error takes place irrespective of the operating system platform and the configuration of the memory areas. User cannot avoid this error by modifying the memory profile parameters such as ztta/roll_extension and abap/heap_area_nodia.

In Releases 4.6B to 6.10, 64-bit hardware is utilized in such a manner that an application server can have a larger number of user contexts at the same time. Additionally, various buffers (for instance program buffers, buffers for database tables) can be up to 2 GB.

The restriction of internal sessions to 2 GB was introduced after the problems described above occurred; the restriction exists as of the 4.6D kernel patch 1286 and the 6.20 kernel patch 368.

 


×