Quote:
Originally Posted by
DreamWarrior
[...]How can that happen? The kernel should clean up after the process ends, so while it is possible that no one ever flagged the segment to be deleted, if it does get flagged, when every process ends/dies it should go away.
First off it should be noted that this behavior could be (is) platform specific and I'm not sure if this is possible on
AIX, because I don't have a lot of experience with this
OS/platform.
I had such an experience with
Sun Solaris, but I don't remember if this was because of orphaned semaphores or shared memory segments.
I believe that for shared memory segments in that case the
ipcs column
nattch (number of attached processes), if present, should be 0.
It can happen with semaphores too (this is documented in
MetaLink's note
Unix Semaphores and Shared Memory Explained (Doc ID 15566.1)):
Quote:
Occasionally, unexpected termination of Oracle processes will
leave semaphore resources locked. If your database is not
running, but "ipcs -sb" shows that semaphore sets owned by
oracle are still in use, then you need to deallocate (free)
them. If you don't do this, then you may not be able to allocate
enough semaphores later to restart your database.
I suppose that this behavior
might be only specific to old (and in some cases buggy) kernels/OS/SW versions.