[PHP-users 25016] Re: OCI8 関数使用時にHTTPDプロセスのファイルディスクプリタが開放されない
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2005年 3月 22日 (火) 15:01:29 JST
こんにちわ、桝形です。
> 返信が遅くなってしまい、申し訳ありません。
とんでもないです。
この件に関して気になっていたので返信して頂き感謝です。
> ご指摘いただいた方法、
> 1.PHPのバージョンを最新(PHP 5.0.4RC1 or PHP 4.3.11RC1)とする
> 2.ApacheのMaxRequestsPerChildを低くする
> 3.ソースのocilogoffの条件付コンパイル部分(#if 0)を有効にする
> のうち、2番目の方法について、試してみました。
>
> MaxRequestsPerChildを小さくした場合も、ファイルディスクプリタが
> 溜まっていく動作は変わりません。
> しかし、ファイルディスクリプタの数がMaxRequestsPerChildで
> 設定した値に達した際に、httpdプロセスが再起動され、それと同時に
> ファイルディスクリプタも開放されているようです。
やっぱり。。。それがoci8関数の仕様なんでしょうかね。
> > (RSHUTDOWNではなくてMSHUTDOWNっぽい)
CGI(or CLI)版では動作原理的に問題が無いのかなぁ。。。と
いう気がしてます(確認してませんけど)。
# putenvで環境変数を定義しまくると、Apacheのプロセスが落ちたり
# するので更に微妙な感じ。> oci8
#
# http://bugs.php.net/bug.php?id=27620
# http://bugs.php.net/bug.php?id=30117
> MaxRequestsPerChildを1にした場合、DB接続を2回以上行っている
> ソースでは不具合が出るかとも思ったのですが、そのようなことも
> 無く、正常に処理が行えています。
MaxRequestsPerChildは子プロセスが何回処理をしたら子プロセスの
再起動を行うか。。。の定義(のはず)なので、DBコネクション数
とはアマリ関係がないのかと。。。
(根本的解決ではありませんが)とりあえず解決できてヨカッタすね。
--
Seiji Masugata<s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内