Salesforce

What might affect the necessary -Mxs value for a database?

« Go Back

Information

 
TitleWhat might affect the necessary -Mxs value for a database?
URL NameP37566
Article Number000150397
EnvironmentProduct: Progress
Version: All supported versions
Product: OpenEdge
Version: All supported versions
OS: All supported platforms
Question/Problem Description
What might affect the necessary -Mxs value for a database?
What uses memory that may require a higher value than the default setting for Excess Shared Memory Size (-Mxs) ?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
All of the components that make up the shared memory are derived from the database startup parameters. For further information on how the database broker calculates the default value for -Mxs parameter refer to Article 000020149,, What does the 6495 'Out of free shared memory' error mean?  

For example, locks for records that exceed the -L database startup setting, may pull memory from the -Mxs pool to increment the lock table +1 until the -Mxs is exhausted in order to complete UNDO processing.

There are additionally some structures that are based off of information in the schema of the database (which is read after memory is allocated).
One of these which we factor into our shared memory is a linked list based partially on how many mandatory fields are defined within the database schema.
Though the algorithm may change at anytime in the future, currently each mandatory field uses:
6 bytes in the schema + (a hash table 53 * the size of the shared pointer (which on 32 bit is 4 and 64 bit is 8)) + 1 file control structure which is 20 bytes for header.

Example:
For 200 mandatory fields:
200 * 6 bytes + (53*4 bytes -- for 32 bit Progress) + 20 bytes = 1432 bytes.

 
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:32 AM

Powered by