Consultor Eletrônico



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.