If not possible to upgrade at this time use the following workaround:
1. Ensure that the current settings for shared-memory are sufficient for 'normal' operations. Specifically: -B, -Mxs, -shmsegsize and -maxAreas are all set to an environment-appropriate value rather than the defaults.
2. Monitor Shared-Memory either through promon > R&D > 1. Status Displays > 14. Shared Memory Segments
or the following ABL code:
FOR EACH _Segments:
DISPLAY _Segment-ByteFree _Segment-BytesUsed.
END.
To avoid an Emergency shutdown of the database when "free memory" starts exhausting:
Example:
Seg Id---------Size---------used---------free
1 20971537 733454336 730158792 3295544
.. time ..
1 20971537 733454336 733355648 98688 (/168 = circa 580 connects remaining)
Increase -Mxs online with:
$ proutil dbname -C increaseto -Mxs <value in KB>
NOTE:
0. The user running this cmd, must have the appropriate permissions to execute this utility. Please refer "OpenEdge Management: Database Administration - proutil increaseto qualifier"
1. All current promon connections must be stopped prior to running the 'proutil -C increaseto'
2. If existing connections have not yet connected to the shared memory or an additional shared-memory segment needs to be allocated to satisfy the 'proutil -C increaseto' argument, a message will appear listing these connections and prompt "yes/no" to wait.
Either: these connected users need to 'do something' to re-address the shared-memory segments or they need to be disconnected before the additional shared memory can be allocated.
Eventually the database will need to be shut down to release the memory associated with the leak (circa 168 bytes per connect/disconnect).