The simplest way is to run onmode -ky with the environment set up for the
crashed/damaged server. That will bring the server down if it's still online
and will usually clean up shared memory even if the server crashed hard and did
not clean up on the way down. If that fails, you need to use 'ipcrm -m' with
the shmid set to the ids that match the following keys:
Take the hex value 0x5256 and add the SERVERNUM from the server's ONCONFIG file
converted to hex. So for SERVERNUM = 21 add 0x0015 to result in 0x526b. Now to
find the keys:
ipcs -m|fgrep 0x526b
you should see lines like:
m 66 0x526b4803 --rw-rw-rw- root informix
m 67 0x526b4804 --rw-rw-rw- root informix
m 68 0x526b4805 --rw-rw-rw- root informix
So , in this case you would need to:
ipcrm -m 66; ipcrm -m 67; ipcrm -m 68
BTW, you can ease this confusion by running an onstat -g seg shortly after the
engine starts up and save to a file. That will print out all of the shared
memory segments including their ids and keys (unfortunately in decimal but it's
easily converted to hex using bc - hint set 'obase=16' then type in the key).
Then you just have to look at the saved onstat results from the instances
startup to determine the segment ids (except for any new dynamic segments added
later - but the first digits of the keys will be there anyway).
Art S. Kagel
----- Original Message -----
From: Sathyanesh Krishnan <ids@iiug.org>
At: 11/01 13:02:46
Hi All,
I am trying to get information how to cleanup corrupted shared memory
segment of IDS servers without rebooting the UNIX host.
If anyone knows the documentation then can you please forward it to me.
Thanks,
Satyan
Software Engineer
R&D - IBM Information Management Division
11200 Lakeview, Lenexa, KS 66219
Tel: 913 599 8792 (T/L: 337-8792)
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.