1. Reduce the shared memory on one or more database servers startup parameters. A good starting point is to reduce the prior value of Database Buffers (-B) by 10%. Since OpenEdge 10.1B the
-shmsegsize database startup parameter can be adjusted down so enough contiguous Memory are available for the Virtual Memory Manager to provide to the server. Refer to Article
What is the default -shmsegsize value used when allocating shared memory segments? The database must be restarted for these new settings to take effect and the client connection in shared memory should be attempted immediately after the database is started to verify if the reduction in shared memory and the segments used to satisfy the requirement is sufficient to avoid the 1720 error. This also increases the chances of their being enough
contiguous Memory available for the Virtual Memory Manager to provide to the client. For example several clients may be able to connect, before the
nth connection fails, due to the fact that the memory pages have fragmented such that contiguous memory are not longer available when the shared memory requirements are approaching the 32-bit executable limit.
2. Connect Client-Server (-S -H) instead of shared-memory3. Use OpenEdge 64-bit license instead of the 32-bit install.
- Windows OpenEdge 64-bit is available since OpenEdge 10.2B.
- 32-bit clients will need to connect to the 64-bit Database Client Server and will be able to attach to more shared memory through the 64-bit remote server
- 64-bit client processes will be able to attach to more shared memory