我在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);
}
}
}
答案 0 :(得分:0)
如果您想让它保持持久,请不要关闭连接。