We have had the main dataserver process die on Solaris 2.8 and leave the other online engine processes hanging. What is the Unix command that will list the shared memory segment that each engine process is attached to ? The ps command does not provide this info. BTW - We have many servers running so there are a ton of online engines on this box.
Also, theres only one shared mem segment per ASE (irrespective of no. of engines)
not entirely correct. Linux will show 2 segments for each instance of ASE.
The post is very confusing to understand. From what I gather, the sybase engine died or hanging. Now if this happens, only true in ASE 12.5.x onwards. I've seen engine pids go defunct and completely unusable. You can check the process tree for the defunct engine and kill parent. This will get rid of the bad engine. Sybase shared memory will also clear all the engine DES internally. You can then restart that engine using sp_engine.
Sybase engines <==> CPU mapping is not transparent from UNIX. Engines ill context swicth between CPU's. If you have setup CPU affinity, which is available on Solaris then you are guranteed to the CPU that is servicing any engine at a given time.