Kbase 18306: AIX Limit on Shared Memory Segments per Process EXTSHM
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  12/03/2003 |
|
Solution ID: 18306
FACT(s) (Environment):
IBM AIX
SYMPTOM(s):
AIX limit on shared memory segments per process EXTSHM
Maximum number of shared-memory segments per process exceeded. (1175)
The data space of the process is not enough for the shm segment (1176)
** Could not connect to server for database <DATABASE>, errno <ERRNO>. (1432)
CAUSE:
Previously AIX has a limit of 10 shared memory segments per process. In AIX Version 4.2.1 this limit has been raised to 11. The maximum size of a shared memory segment Progress can access on AIX is 128M. This limits the total shared memory area for a process to 1.4Gb, which may be smaller than desired for very large (or multiple) databases.
FIX:
On AIX 4.2.1 there is an environment variable you can set to remove the 11 segment limit. It is EXTSHM. To set this variable:
From the Korn shell:
EXTSHM=ON ; export EXTSHM
From the C shell:
set EXTSHM=ON
This flag sets up a different type of shared memory which cannot be used as an I/O buffer with some databases. Progress can make use of this shared memory under one condition:
The EXTSHM environment variable MUST BE SET FOR ALL PROCESSES. This includes the broker, background processes, and all clients. It is recommended to set this environment variable in someplace like the /etc/profile to ensure every process gets this.