Kbase 13211: Shared Memory & Semaphore Parameter Settings for Unix Kernel
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/18/2003 |
|
Solution ID: 13211
SYMPTOM(s):
Uses of UNIX semaphores to synchronize the activities of server processes and self-service client processes
Too many users requested semaphore undo, increase SEMMNU. (1081)
Warning: only <num> wait semaphores are available. (1093)
Less than minimum number of semaphores available (1130)
Semaphore limit exceeded (1131)
No available wait semaphore. (1195)
UNIX semaphores are grouped into "semaphore sets".
Individual semaphores are identified by an integer ranging from 0 to one less than the size of the semaphore set.
Semaphores are not used with single user Progress sessions.
FIX:
The Progress broker creates the semaphore set when the database is started. The size of the set is the number of users (-n parameter) plus the number of servers (-Mn parameter) plus 4. There is one semaphore set used for each active database.
The following UNIX kernel parameters control the number and size of the semaphore sets:
SEMMNI - The maximum number of semaphore identifiers allowed for the system.
SEMMSL - The maximum number of semaphores allowed per semaphore identifier (semaphore set).
SEMMNS - Total number of semaphores allowed for the system.
SEMMNU - Maximum number of semaphore undo structures allowed for the system.
When you install Progress, you may have to increase the values of these parameters.
If you are running other software which also uses semaphores, you must take into account the combined requirements.
The recommended settings are:
1) SEMMNI - One per active database.
If you set this value too low, you may get Progress error 1131.
2) SEMMSL - Max number of users on any database + Max number of servers for any database + 4.
If you set this value too low, you may get Progress error 1093 or error 1130.
3) SEMMNS - SEMMSL * number of active databases.
If you set this value too low, you may get Progress error 1093, 1131, or 1195.
4) SEMMNU - One per process (broker, biw, aiw, apw, watchdog, server, monitor, or self-service client) which is connected to a Progress database.
If you set this value too low, you may get Progress error 1081.