0

永続的な接続を使用する単純な OCI ラッパー クラスを PHP で作成しました ( oci_pconnect)。クラス デストラクタは を呼び出しますoci_close

このクラスは、すべての AJAX PHP スクリプトで使用されるため、頻繁に呼び出されます。ただし、永続的な接続を使用し、oci_closeこれらをキャッシュから削除していないにもかかわらず (私の理解によると)、データベースへの開いている接続の数が上限に達し、システムが失敗します。開いている接続の数は、アプリ全体で 1 つだけだと思っていました!

私は明らかに間違ったことをしていますか?


スケルトン コード:

class Oracle {
  private $connection;
  private $connected;

  function __construct($connectionString, $username, $password) {
    if (!($this->connection = @oci_pconnect($username, $password, $connectionString))) {
      echo 'Cannot connect to '.$username.'@'.$connectionString;
      $this->connected = false;
    } else {
      $this->connected = true;
    }
  }

  function __destruct() {
    if ($this->connected) {
      oci_close($this->connection);
    }
  }
}
4

1 に答える 1

0

接続を持続させたい場合は、接続を閉じないでください。

于 2012-08-16T11:13:10.067 に答える