#26829 [Ver->Fbk]: Killed Oracle Sessions openned with OCIPLogon()
| From: | sniper@php.net | Date: | Wed, 14 Jan 2004 02:00:20 +0000 |
| Subject: | #26829 [Ver->Fbk]: Killed Oracle Sessions openned with OCIPLogon() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-53282@lists.php.net to get a copy of this message | ||
ID: 26829
Updated by: sniper@php.net
Reported By: david dot gaia dot kano at dartmouth dot edu
-Status: Verified
+Status: Feedback
Bug Type: OCI8 related
Operating System: Compaq Unix
PHP Version: 4.3.4
Previous Comments:
------------------------------------------------------------------------
[2004-01-07 20:14:23] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
AFAICT, the function does check if persistent connection is still alive
(using oci_ping())..but did you mean the connection is killed while the
script is being run or what?
------------------------------------------------------------------------
[2004-01-07 11:36:45] david dot gaia dot kano at dartmouth dot edu
Description:
------------
Here at Dartmouth our DBA team has a policy of killing any Oracle
session that has been connected for longer than 24 hours. Hence the
persistant connections created by the PHP OCIPLogon() call get killed
once a day. We don't really want to restart our apache server once a
day, so it would be great if OCIPLogon() would check to see that a
previously created persistant connection is still good somehow and if
not, create a new connection.
I noticed quite a few bugs along these lines, but they have all been
closed. I don't know if that is because this bug was fixed or because
the submitters have continued to restart their servers after every
database restart or killed connection.
If this is not going to be fixed, I guess we would have to write our
own application level code to check the connections from ociplogon()
and if it is bad, use OCILogon() instead for that request and issue a
apache_child_terminate() call so that eventually all the children with
bad oracle sessions would be restarted...
Reproduce code:
---------------
$con = OCIPLogon("user", "password", "tns_db_name");
// at this point all looks good still... $con != false
// but if this session was killed then any use of $con
// results in one error or another.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26829&edit=1