php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #56951 php failing to cache presistent connections
Submitted: 2006-04-11 19:24 UTC Modified: 2006-07-07 05:12 UTC
From: vijay dot vujjini at fmr dot com Assigned:
Status: No Feedback Package: oci8 (PECL)
PHP Version: HEAD CVS-2006-04-11 OS: Solaris + OIC
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: vijay dot vujjini at fmr dot com
New email:
PHP Version: OS:

 

 [2006-04-11 19:24 UTC] vijay dot vujjini at fmr dot com
Description:
------------
Hi: When I am using Oracle Instant Client Libraries (v10.2.0.2) to connect to my DB. I complied the latest version of oci8 (1.2.0) with php-5.1.2 source and running it on IPLANET+SOLARIS.

When I invoke oci_pconnect I do not see connection being cached and reused when with my subsequent calls. Each new request is opening up a new connection and on top of that, the connections are not being closed as per my oci8_presistent_timeout value (60 sec).





Reproduce code:
---------------
php.ini configuration:
======================
oci8.privileged_connect = 0
oci8.max_persistent	= -1
oci8.persistent_timeout	= 60
oci8.ping_interval	= -1
oci8.statement_cache_size = 20
oci8.default_prefetch	  = 10
oci8.old_oci_close_semantics	= 0

calling oci_pconnect at the start of the script and invoking stored proc.

Expected result:
----------------
Expect one connection to be opened and reused with subsequent requests.

Actual result:
--------------
Seeing a new connection opened with db for each new request.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-04-12 04:33 UTC] tony2001 at phpclub dot net
Persistent connections are reused only in terms of one child/thread. If you have 500 separate web-server process, you'll have 500 persistent connections.

>the connections are not being closed as per my 
>oci8_presistent_timeout value (60 sec).
How exactly did you check that?
 [2006-04-12 10:58 UTC] vijay dot vujjini at fmr dot com
I only have two IPLANET instances using this database service. For testing purposes I shut down one and tested it and I had my database admin monitor the connections on the oracle server. 

50 is the max limit set on the server and I manually refreshed  my php script 50 times and 51st time I get this error:


oci_connect() [<a href='function.oci-connect'>function.oci-connect</a>]: ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit in <b>/usr/local/apps/iplanet/servers/docs/rss/class.db.php</b> on line <b>143</b><br />

Also on the database, we see a new request being opened for each refresh. Restarting the Iplanet server will only reset the connections back to 0.

I also would like to correct my earlier statement about connection close...I think connections are being closed but I don't think they are being closed at the 60 sec idle time. Its very random.


Thanks
 [2006-04-12 11:24 UTC] tony2001 at phpclub dot net
I've no idea what is iPlanet and what "instance" means for it. Is it a fork()-based server or is it multithreaded?
Can you try it with plain Apache?
I can't reproduce it with Apache and I don't have iPlanet to play with.
 [2006-04-12 11:58 UTC] vijay dot vujjini at fmr dot com
iPlanet is Netscape Web Server (part of sun one web servers) and iPlanet instance is equivalent to having an apache child.

So when i say iPlanet instance, I mean...I have an iPlanet Server thats exclusively used for this application and listens on a specific port and is multithreaded.

I will try to test this with Apache and see if I can reproduce this issue? Since I don't have any Apache servers with me...give me 2/3 days to get whole php/my application set and test this out...

Are you using Oracle Instant Client Libraries or a full Client? 

Thanks
 [2006-04-12 12:02 UTC] tony2001 at phpclub dot net
I've tested with both full and instant clients.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 01:01:30 2024 UTC