The AVM dynamically allocates space for r-code segments in the execution buffer as needed. When memory allocation reaches the value specified by the Maximum Memory (-mmax) value, the AVM writes nonactive segments to the sort file to make room for new active procedures. (the AVM writes library-stored r-code to the sort file only if you specified the PROLIB Swap (-pls) startup parameter.) If you have large procedures or deeply nested procedure calls, you can use -mmax to increase the initial size of the execution buffer to reduce disk I/O activity required to swap segments to the sort file.
You can force OpenEdge to adhere to the specified
-mmax limit by starting the session with the
Hardlimit(-hardlimit) startup parameter. When you use the
-hardlimit startup parameter, OpenEdge issues the
WARNING message when you exceed the Maximum Memory limit. It also issues a message that a resource limit was reached and raises an untrappable
STOP condition. Note also that
-hardlimit also enforces the limits set by the
DirectorySize (-D), the
Local BufferSize (-l), and the
Nested Blocks(-nb) startup parameters. The
STOP condition is raised when any of the specified limits is reached.
Use
Statistics (-y) and
SegmentStatistics (-yd) to see segment allocation information.