Re: PHP 4.0 Bug #4900: Losing memory on web server and Listerner on the NT Service
| From: | thies at digicol dot de | Date: | Thu, 08 Jun 2000 14:11:51 +0000 |
| Subject: | Re: PHP 4.0 Bug #4900: Losing memory on web server and Listerner on the NT Service | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-20572@lists.php.net to get a copy of this message | ||
On Thu, Jun 08, 2000 at 01:48:01PM -0000, herve@elma.fr wrote:
> From: herve@elma.fr
> Operating system: Linux RedHat 6.1 - Apache 1.3.12 - Oracle Client 8.1.5 - Oracle Server NT
> 8.0.5
> PHP version: 4.0.0 Release
> PHP Bug Type: Oracle related
> Bug description: Losing memory on web server and Listerner on the NT Service
>
> I'm using a Linux RedHat 6.1 - Apache 1.3.12 - with Oracle Client 8.1.5 - PHP 4.0.0
> Release
> And the Oracle Server is Oracle Server 8.0.5 on Windows NT
>
> It's a web site, with a minimum of 1 oracle request per page, and a maximum of 6 or 7
> oracle requests per page.
> linked with many other web site which make Oracle request about 70000 requests per day ...
>
> It's global troubles :
> - I lose memory on the Web server about 100Kb/seconde, I have to do a ./apachectl gracefull
> every hour to get the memory back (like when it start) because I get no more memory forthe service
> ... (512 Mb on this computer)
> - On the NT Server the Oracle Listener service memory grow all the time and must be restarted
> once a day, because it used all the memory (just the listener) - 512 Mb on this computer.
>
> When I make the graceful on apache the memory is not free for the Listener on the Oracle, and
> there is no connexions persinsting on the Oracle (or seems to not).
> Same thing when I cut the Listener on the NT Server the memory trouble of the Web server still
> remain.
> I mean in the two troubles it's not seems to be persistants connexion ... !?
>
> In the PHP scripts I open connections with Oracle with OCINLogon, before closing the connexion
> I make OCIFreeStatement, and then OCILogoff.
> We choose the ICNLogon because the OCIPLogin make persistant
> connexions and quickly the Oracle told us that the maximum of
> connexions were set, and when we made graceful on the apache
> the connexion were closed on the Oracle.
why can't use use OCILogon? OCINLogon is the slowest and
most resource-consuming option you have!
(3x OCINlogon() on a page -> 3 oracle-sessions are created)
from the manual:
OCINLogon() forces a new connection. This should be used if
you need to isolate a set of transactions. By default,
connections are shared at the page level if using OCILogon()
or at the web server process level if using OCIPLogon(). If
you have multiple connections open using OCINLogon(), all
commits and rollbacks apply to the specified connection only.
tc