永続的な接続を使用する単純な 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);
}
}
}