Kulasekaran, Raja wrote:
> The below method used to kill the child process after the successful
> execution of web request.
>
> $r->child_terminate();
>
> Can anyone suggest me where and how do I call this method in the
> httpd.conf file.

You don't, you put it in your application code.

However you should not be calling this under normal circumstances as all 
it'll do is cause the current apache child process to exit and for the main 
apache process to fork another child. Which will massively increase the load 
on your server for zero gain.

Specifically having read your previous posts it will not reduce the number 
of DB connections you're seeing, as the newly-forked replacement process 
will make a new DB connection. You'll also increase the load on your DB 
server as Oracle will be constantly closing down connections and opening new 
connections - which is relatively expensive in Oracle and the reason that 
modules such as Apache::DBI exist in the first place.

Assuming that your problem is the number of Oracle processes, then you may 
be better switching to multithreaded Oracle.

You may also be able to reduce the number of connection by checking your 
code base to ensure that the same options are used whenever you request a DB 
handle.

Finally you'll be able to limit the number of connection by limiting the 
number of Apache child processes (MaxClients in httpd.conf) - however all 
that you're likely to achieve is pushing the bottleneck closer to the 
client. As Perrin has already suggested if you're not proxying or dealing 
with static content in another manner you need to ensure that these requests 
aren't going through to your mod_perl server.

Carl

Reply via email to