The OpenEdge RDBMS uses shared memory to hold database buffers, latches, and control information including the lock table, AI buffers, and BI buffers. OpenEdge Release 10 can address larger amounts of allocated shared memory than previous releases. On 32-bit systems, the addressable limit is 4 gigabytes and on 64-bit systems, the addressable limit is 8 terabytes. These limits are architectural limits and are reduced in practice by limitations imposed by the underlying operating system and other factors. This is particularly true on 32-bit systems because the entire process address space is limited to 4 gigabytes and you cannot use all of it for shared memory. In practice, most 32-bit OpenEdge releases are limited to a maximum of approximately 2 gigabytes of shared memory.
The amount of shared memory allocated for database buffers is specified by the -B startup parameter. The theoretical maximum value for -B is 125,000,000 for 32-bit platforms and 1,000,000,000 for 64-bit platforms, but in practice, you will never successfully set -B that high.
The maximum number of shared memory segments is:
32 on 32-bit systems
256 on 64-bit systems
On UNIX, the number of shared memory segments, and their maximum size are constrained by kernel parameters. Fewer large segments tend to give better performance than many small segments.
Note: Actual maximum values are constrained by available system resources and operating system settings. For more information on shared memory segments, see Sharedmemory allocation.