[PHP-users 8778] Re: ODBC接続によるセッション管理で、Oracle サーバにプロセスが溜まってしまう問題

Takeshi Yamguchi php-users@php.gr.jp
Fri, 19 Jul 2002 12:10:58 +0900


自己レスです。
いろいろ試してみましたが結局問題は解決していませんが、
なんとなく問題点が浮き彫りになってきたので
ご報告いたします。


セッション管理の開始・終了は
実現することができたのですが、サーバにプロセスが残ってしまい、
サーバに負荷がかかってしまいます。

■私はODBC接続にてOracleサーバに接続しているため、
db_odbc.incのソースを確認してみました。

すると
このスクリプトを利用することでセッション管理の開始・終了は
実現することができたのですが、サーバにプロセスが残ってしまい、
サーバに負荷がかかってしまいます。

私はODBC接続にてOracleサーバに接続しているため、db_odbc.incの
ソースを確認してみました。

すると
  function connect() {
    if ( 0 == $this->Link_ID ) {
      $this->Link_ID=odbc_pconnect($this->Database, $this->User,
$this->Password, $this->UseODBCCursor);
      if (!$this->Link_ID) {
        $this->halt("Link-ID == false, odbc_pconnect failed");
      }
    }
  }

の部分でデータベースに持続的接続関数「odbc_pconnect」を用いて
接続をしているのに対して「odbc_close」が見当たりませんでした。
クローズしないため接続が続いてしまってサーバにプロセスが残ってしまうのではと
考えているのですが...

※現状としてはログイン・ログアウトを繰り返す回数分だけ
 サーバにプロセスが溜まってしまうようです。

何かサーバにプロセスを残さない良い方法はあるのでしょうか?


----------------------
TakeshiYamaguchi
t-yamaguchi@f-com.co.jp