English

Error: CONNECT FATAL ERROR Semaphore create failed in CsaConnect

Solution or Workaround

Why does an attempted CONNECT to a DBMS from ArcInfo return:

CONNECT FATAL ERROR
Semaphore create failed in CsaConnect

Answer:

In order to make a connection to a DBMS, adequate amounts of semaphores and shared memory must be available. The communication between the ArcInfo server and the client is by shared memory and semaphores. For each ArcInfo connection established, there should be one shared memory entry and one semaphore entry in the ipcs listing. Other software products, such as the DBMS kernels or network products, may also have ipcs entries.

Usually, this error occurs because either
1) ipcs is not enabled
2) the interprocess communication (ipcs) table is full, or
3) the UNIX kernel is incorrectly configured

First, check to see if the ipcs for the system is enabledby typing "ipcs" at the unix prompt.

If it is not enabled, this message will be returned:

IPC status from goose as of Thu Jul 14 11:09:05 1994
Message Queue facility not in system.
Shared Memory Facility not in system.
Semaphore facility not in system.

If ipcs is not enabled, the kernel will have to be re-built with ipcs enabled,
see your unix system administrator.

Next, check to see if the ipcs for the system is full. Under certain circumstances, abnormal termination of ArcInfo or the DBMS kernel may leave the DBMS server still running, and without clearing the entries in the ipcs table.

To see the contents of the ipcs table, use type in 'ipcs' at the UNIX prompt:

% ipcs
IPC status from /dev/mem as of Sun Jan 25 05:59:12 1970
T ID KEY MODE OWNER GROUP
Message Queues:
q 0 0x4107001c -Rrw-rw---- root printq
Shared Memory:
m 77825 0x5806c802 --rw-rw-rw- root system
Semaphores:
s 4096 0x4d090049 --ra-ra---- root system
s 4 0x01063022 --ra------- root usrspt
s 5 0x01072067 --ra------- root system

To delete the server process and the redundant entries from the ipcs table:

% kill -9 <--- To delete the DBMS server process
% ipcrm -s <--- To delete the semaphore entry in the
ipcs table
% ipcrm -m <--- To delete the shared memory entry in
the
ipcs table