Memory Variables

This topic lists the typical memory environment variables specified in the [matrix] section of enovia.ini. The following memory settings should be configured for your environment based on installed server memory. Thread limits should be emphasized over system limits so only long running operations are affected. As a best practice to increase server stability, data should be paged to disk. Paging reduces in-process memory usage for large datasets. If you periodically see “insufficient memory” errors in your mxtrace log, you need to re-adjust these settings to support larger in-process memory usage.

Variable Description
MX_CACHE_SYSTEM_LIMIT Sets a threshold on memory consumption for all threads, before using KeyDB. If the number of bytes of in-process memory being used by all active sessions exceeds this setting, FlashDB will start paging the database rows for all sessions to disk. The default is 0, meaning unlimited, so no paging will occur. MX_CACHE_SYSTEM_LIMIT should be set to no more than 80% of MX_MEMORY_SYSTEM_LIMIT, in order to force paging to disk to occur BEFORE the system memory limit is reached.
MX_CACHE_THREAD_LIMIT Applies to a single thread only. If the number of bytes of in-process memory being used by a single session exceeds this setting, FlashDB will start paging the database rows for that single session to disk. No other threads are affected. The default is 0, meaning unlimited, so no paging will occur. MX_CACHE_THREAD_LIMIT should be set somewhat lower than MX_CACHE_SYSTEM_LIMIT to minimize the likelihood that a single thread, processing a large request, will affect the performance of other threads by consuming all the memory. Use of this setting means that greedy threads will page data to disk, thereby slowing their processing, but also leaving more memory available for other threads to use. A reasonable setting is 50% of the value of MX_MEMORY_SYSTEM_LIMIT.
MX_MEMORY_SYSTEM_LIMIT Is meant to be the high water mark of allowable memory allocation for the native Live Collaboration kernel. The ENOVIA Live Collaboration memory manager tracks the number of bytes allocated and will issue warnings for every allocation over the MX_MEMORY_SYSTEM_LIMIT. There are several areas in the Live Collaboration kernel that will also look for allocations over the MX_MEMORY_SYSTEM_LIMIT and abort the transaction. These checks are places in functional areas that are known to be memory intensive (database rowset loading, queries, expands and history lookups). The goal is to have the Live Collaboration kernel abort the transaction that is consuming large amounts of memory while allowing the other threads to continue working.
MX_MEMORY_THREAD_LIMIT Sets the maximum amount of memory that may be used for a single ENOVIA Live Collaboration thread. The default is 1GB. Should allocation attempts be made beyond this size, warning messages will be written to the server log that identify the program file name and line number.