|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2004-08-31 07:16 UTC] tony2001@php.net
[2005-09-08 11:49 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 13:00:01 2025 UTC |
Description: ------------ PHP's oci8 opens connections to the database server but does not disconnect. This appears to be done for each instance of apache that uses PHP oci8. Eventually the maximum number of sessions is reached on the database server and no more connections can be made. This has occured on three different Solaris servers (two v7 and one v8) running PHP 5.0.1. After downgrading to PHP 4.3.8 the problem disappeared and connections disappeared from session listing in Oracle as web transactions completed. Config line: ./configure --with-apxs --with-oci8 \ --enable-ftp --with-curl --with-informix \ --with-imap \ --with-ldap --with-gd --with-jpeg- \ --with-pgsql \ --with-libxml-dir \ --prefix \ --with-png-dir --with-zlib --enable-pcntl --disable-debug Oracle Server version: 8.1.7.2 Oracle Client version: 8.1.7 Reproduce code: --------------- Example: $dbh=ocilogon("LOGIN","PASSWORD","DATABASE"); $sth=ociparse($dbh,"select sysdate from dual"); ociexecute($sth); ocifetchinto($sth,&$svret,OCI_ASSOC+OCI_RETURN_NULLS); ocifreestatement($sth); oci_close($dbh); var_dump($svret); Expected result: ---------------- array(1) { ["SYSDATE"]=>string(11) "<<the time>>" } Actual result: -------------- Once the maximum number of sessions is reached this error message is returned: ORA-00604: error occurred at recursive SQL level 1 ORA-00018: maximum number of sessions exceeded