Oracle持久连接最大化服务器与异步PHP脚本

时间:2012-08-16 10:42:26

标签: php oracle persistence oci

我在PHP中编写了一个简单的OCI包装类,它使用持久连接(oci_pconnect)。类析构函数调用oci_close

这个类用于我所有的AJAX PHP脚本,因此被大量调用。但是,尽管使用持久连接并且oci_close没有从缓存中删除这些连接(根据我的理解),数据库的打开连接数量最大化,导致系统失败。我期待开放连接的数量只是整个应用程序的一个!

我做错了什么?


骨架代码:

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);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

如果您想让它保持持久,请不要关闭连接。