Hello Richard, First let me introduce myself, I'm Jay Bauer and have been supporting the Apache webserver for the last couple of years and have been doing networking support for over 15 years. I want to thank you for explaining why the folks replying to our lab's enquiries don't think the tests are valid. I can appreciate the need of doing fault isolation of a problem so that all possible extraneous causes are eliminated. However, I don't think their specific concerns are valid, as these systems are on internal networks, and very few people access them at all, and only Kiran or I would be accessing the oracle database and that is for our tests. And yes we will get some 50 httpd servers up and running, but once we stop our testing there is little access to the system or none to these connections, and they will stay around for hours or days till one of us decides to do more testing and stops and restarts the Apache server. Now having said all of that, I had no problem implementing the test setup you suggested. If that is what it takes to get everyone on the same page, I'm happy to oblige. The HP-UX Apache web server only provides the worker MPM so in order to set up Apache as requested we use the following configuration in httpd.conf: changed the worker.c configuration to: <IfModule worker.c> StartServers 1 MaxClients 1 MinSpareThreads 1 MaxSpareThreads 1 ThreadsPerChild 1 MaxRequestsPerChild 1 </IfModule> and commented out mod_cgid: #LoadModule cgid_module modules/mod_cgid.so and in php.ini: extension=oci8.sl oci8.max_persistent=1 oci8.persistent_timeout=10 oci8.ping_interval=0 After starting Apache we have two process running: ps -ef |grep apache www 29362 29361 0 23:39:52 ? 0:00 /opt/hpws/apache/bin/httpd -d /opt/hpws/apache -k start root 29361 1 0 23:39:52 ? 0:00 /opt/hpws/apache/bin/httpd -d /opt/hpws/apache -k start Pid 29361, the master httpd server, and one worker httpd server pid 29362, which is the minimum configuration possible with worker MPM. I then ran the apache bench mark for just one connection: bin/ab -n 1 http://maggie.india.hp.com/oracle_mufasa.php .... Document Path: /oracle_mufasa.php Document Length: 334 bytes Concurrency Level: 1 Time taken for tests: 0.370606 seconds Complete requests: 1 And then checked on the connection As quick as possible: >netstat -an |grep 1521 tcp 0 0 15.42.227.146.59262 15.106.72.129.1521 ESTABLISHED 30 sends later: >netstat -an |grep 1521 tcp 0 0 15.42.227.146.59262 15.106.72.129.1521 ESTABLISHED 2 minutes later: >netstat -an |grep 1521 tcp 0 0 15.42.227.146.59262 15.106.72.129.1521 ESTABLISHED 5 minutes later: >netstat -an |grep 1521 tcp 0 0 15.42.227.146.59262 15.106.72.129.1521 ESTABLISHED It wasn't until about 40 minutes later that this connection did finally terminate. And when I checked the error_log, it was clear what terminated it: [error] [client 15.10.45.59] Symbolic link not allowed: /opt/hpws/apache/htdocs/index.html [debug] worker.c(1342): taking over scoreboard slot from 29362 (quiescing) Another request finally came in to this system , which errored, and since there was only one server allowed to run it did and that is what killed this persistent connection. This is what we have also observed that other apache requests will cause this persistent connections to be terminated, they don't close on their own. And as said earlier this system's webserver doesn't get many hits, it is a test environment, not a production system. And as we can see it took 40 minutes for any traffic to hit this system. I hope this test is adequate to clear up the concerns that the testing is invalid. Best regards, Jay Bauer WTEC Engineer, Internet Services HP-UX Hewlett Packard Co. -----Original Message----- From: Richard Lynch [mailto:ceo@xxxxxxxxx] Sent: Thursday, October 05, 2006 4:48 PM To: Mendonce, Kiran (STSD) Cc: php-general@xxxxxxxxxxxxx Subject: RE: Re: Understanding persistent connections with oci8 On Wed, October 4, 2006 12:34 pm, Mendonce, Kiran (STSD) wrote: > I understand the performance boost one can get by reusing existing > connections. And I did see for myself that with the default settings, > oci_pconnect() does reuse all the connections. > > But what should happen if there are idle connections and the timeout > is reached ? That is my question. What is the purpose of the > persistent_timeout setting ? Does it give the user a means of > specifying a timeout after which idle connections are removed ? Yes. Their claim is that your tests are invalid because your have MULTIPLE Apache processing swapping the connections around, so they are NOT idle for 10 seconds. To prove them wrong, you would need to: Set up a dev server on a private network with Apache having ONE, and ONLY ONE, child. Set the timeout to 10 seconds. Surf to a test page. Wait 10 seconds. See if the connection goes away. If anybody else on the planet (or off-planet, for that matter, assuming our astronauts have time to surf to your site) can surf to the site and keep the connection "alive" by having Apache re-use it, then it's going to stay alive. -- Some people have a "gift" link here. Know what I want? I want you to buy a CD from some starving artist. http://cdbaby.com/browse/from/lynch Yeah, I get a buck. So? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php