We've been having some problems with our Oracle 8.1.5 database on AIX, which has
highlighted what looks like a problem with Apache::DBI. To cut a very long story
short, due to an Oracle problem database handles are becoming invalid reasonably
frequently. In this case, we would expect Apache::DBI to ping on each connect
request as the ping timeout is set to zero. However, it has been returning dead
handles. Enabling the trace feature showed that it did not always ping, the
problem being that if there is a request for a handle within one second, even if
the ping timeout is zero it will not ping.

A patch for this follows, it is simply a matter of changing the time test from a
> to a >= in line 103 of version 0.88:

my $needping = (($PingTimeOut{$dsn} == 0 or $PingTimeOut{$dsn} > 0) and $now -
$LastPingTime{$dsn} >= PingTimeOut{$dsn}) ? 1 : 0;

So far as I can tell this still applies to the most recent version. I would like
to ask the maintainer of this module if this patch or equivalent fix could be
included in the next release of the module.

Apologies if this message is posted to the wrong place, I think I got it
right...

Regards
Dennis Ingram




**********************************************************************
This email with any attachments is confidential and may be
subject to legal privilege.  If it is not intended for you please
reply immediately, destroy it and do not copy, disclose or use
it in any way.
**********************************************************************

Reply via email to