From:Steve Adams
Date:07-Sep-2000 23:52
Subject:   Can db_check.sh detect a hung listener?

Correct, we just check for the existence of a listener, not a hung listener. If that continues to be a problem, you could enhance the script to do something like this:

{ lsnrctl status; touch $READY; } &
((timeout = 60))
while ((timeout -= 1)) && [[ ! -r $READY ]]
do
    sleep 1
done
[[ -r $READY ]] ||
{
    kill $!
    msg="$PROGRAM: Listener is hanging - no network access to Oracle"
    $DEBUG logger -p oracle.err "$msg"
    STATUS=1
    $INTERACTIVE $msg
}

A couple of times our listener has given up accepting requests, yet the Unix process is still running. From a Unix oracle user, I enter lsnrctl, then enter 'status', and it just sits there, until i do a Unix level 'kill' of the 'tnslsnr' process. This has only happened a couple of times, but am I correct in thinking that your script db_check.sh would not detect this?