Consultor Eletrônico



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.