[All]
How do I check to see how many semaphores are being allocated by InterBase.
By: Borland Staff
Abstract: Steps to check the semaphores allocated
Problem:
Getting "semget" errors. Need to troubleshoot available semaphores.
Solution:
NOTE: It is very important that you ensure that there are no clients
attached to or working with databases on the server that you
are performing the following operations on.
Method: (example from Solaris 2.5 / SO-V4.0)
1) Check the values configured in the isc_config file:
cat /usr/interbase/ics_config
(defaults)
#V4_LOCK_MEM_SIZE 98304
#ANY_LOCK_MEM_SIZE 98304
---> #V4_LOCK_SEM_COUNT 32
#ANY_LOCK_SEM_COUNT 32
#V4_LOCK_SIGNAL 16
#ANY_LOCK_SIGNAL 16
#V4_EVENT_MEM_SIZE 32768
#ANY_EVENT_MEM_SIZE 32768
NOTE: When configuring custom settings you must uncomment the
associated entry.
2) Stop the InterBase server. **IMPORTANT** Make sure there are
no clients attached to the server. You MUST be root to shut
down the server.
gds_drop -a
3) Start the InterBase lock_manager by making an attachment to
the server.
isql connect /usr/interbase/examples/v4/employee.gdb
4) Check to see how many semephores were allocated by InterBase.
The number of semephore should directly correlate to the
value configured for (V4_LOCK_SEM_COUNT). On some OS's the
default number used by InterBase may actually be less than
the isc_config default of (32).
ipcs -a
Look for a process owned by whomever you attached to the
server as. Identify the number of semephores allocated by
the number of (NSEMS).
If you are making a custom configuration and you do not see
the value that you expect, check to make sure that you have
uncommented the (V4_LOCK_SEM_COUNT) in the isc_config file.
Connect with Us