Results 1 to 7 of 7
  1. #1
    Join Date
    Jul 2005
    Posts
    7

    Unanswered: Sybase Engine Zombies

    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.

    Thanks !

  2. #2
    Join Date
    Sep 2003
    Location
    Switzerland
    Posts
    443
    ipcs -a (more detailed display)
    ipcs -m (shorter display).

    If you have multiple engines running, the easiest way to find the pids to map it to ipcs dispaly is to look at the ASE errorlog. It will contain the unix pids.

    Once you do a kill -9, its more likely the share memory segment still stays.

    You have to manually remove it thro

    ipcrm -m <shmemid> (You will get this from ipcs -a or ipcs -m)

    Another thing.

    Theres a lot of known hang issues in Solaris.

    For eg.,

    v11.9.2 and anything >= build 16 will hang.
    Recently, we found that the opposite is also true.
    v12.x and old builds like build 12/13 will hang.

    So make sure you have all the hang conditions from Sybase support and upgrade your systems accordingly.

    hope this helps.

  3. #3
    Join Date
    Sep 2003
    Location
    Switzerland
    Posts
    443
    You could also look at the .krg file which will give you the sharemem unix pid.

    But I would still look at the ASE errorlog since, you have to make sure you kill all the unix process ids. If you leave a engine by mistake, the ASE won't start.

  4. #4
    Join Date
    Sep 2003
    Location
    Switzerland
    Posts
    443
    Also, theres only one shared mem segment per ASE (irrespective of no. of engines)

  5. #5
    Join Date
    Feb 2002
    Location
    Willy is on vacation
    Posts
    1,208
    Quote Originally Posted by trvishi
    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.

  6. #6
    Join Date
    Sep 2003
    Location
    Switzerland
    Posts
    443
    Linux is a completely different beast. Tot user was asking about Solaris and I explained a little bit about build compatibility with ASE since tot will help user.

  7. #7
    Join Date
    Feb 2002
    Location
    Willy is on vacation
    Posts
    1,208
    Quote Originally Posted by trvishi
    Linux is a completely different beast. Tot user was asking about Solaris and I explained a little bit about build compatibility with ASE since tot will help user.
    sorry dude! wasn't questioning your wisdom. My post was just FYI. Sincere apologies if this offended you.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •