Kbase P125975: Clients cannot connect after upgrading to OpenEdge 10.1B error 1720 or 1176
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  30/03/2011 |
|
Status: Verified
SYMPTOM(s):
Unable to connect client via shared memory when a large value for -B is used
Unable to attach shared memory <shmname>, error <n>. (1720)
Unable to attach shared memory Global\<shmname>, error 0. (1720)
The data space of the process is not enough for the shm segment (1176)
FACT(s) (Environment):
Value for -B x databaseblocksize is below 2 GB
Clients can connect to database with the same -B under OpenEdge 10.1A
No changes on the system except upgrade to 10.1B
OpenEdge 10.1B
OpenEdge 10.1C
OpenEdge 10.2x
All Supported Operating Systems
CAUSE:
The shared memory limit for 32 bit Progress products is 2 Gigabytes (due to 32-bit pointers limitation), setting database startup parameters too high leads to this failure.
The following changes have been implemented which impact the current database startup shared memory settings:
- In OpenEdge 10.1B, the default shmsegsize was increased to 1024 MB, so if more that one segment is needed, startup will fail
- In OpenEdge 10.1B03, the lock table hash chain anchors have increased in size by 108 bytes. If the current -B x databaseblocksize (largest contributor to shared-memory) nears 2GB, in addition, a large -L value could push the shared-memory over 2GB on 32-bit platforms. For example, the number of hash chain anchors will be 25,621 for a -L of 150,000. This is an increase in memory usage by about 2.6 MB.
FIX:
En-force pre OpenEdge 10.1B default startup parameter behavior by adding "-shmsegsize 128" to the database startup parameters. In this way the total shared-memory requirement will be distributed over more shared-memory segments. Modification of the -shmsegsize will not negatively impact performance.
It should not be necessary, but decreasing the default -lkhash value to (say) 4271- by adding -lkhash 4271 to the database startup parameters - will further minimize the shared-memory required but will introduce a possible loss in performance.