My company has been experiencing quite a bit of zombie process creation
when we created our own ping function to work under mod_perl (for
persistent dbh's).  It seems like there's one zombie process per httpd
process being created.  I have provided the code that we're using to
create the ping function.

sub my_ping
{
        eval {
                my $sth = $dbh->prepare("SELECT 1 from DUAL");
                $sth->execute;
                $sth->finish;
        };
        if ( $@ )
        {
                        eval { $dbh->disconnect() if ( $dbh ); };
                        $dbh = some_package_name::connect()  ;
        }
        return $dbh;
}

It seems that if the dbh is dead or has problems with the execute or
select statement, the program does a core dump with the following message:

[Mon Nov 13 12:38:21 2000] [notice] child pid 24077 exit signal
Segmentation fault (11)

are there any other alternatives to writing a ping function or testing if
the $dbh is alive so we can reconnect?  Much appreciation for any advice


--------------------------------------------------------------------------

Why is College Club the largest and fastest growing college student site?
Find out for yourself at http://www.collegeclub.com


Reply via email to