Avatar billede kirsten Nybegynder
24. september 2009 - 15:40 Der er 8 kommentarer og
1 løsning

Mysql Sleep

Hej,
jeg undrer mig lidt over at mine mysql forbindelser går i sleep når jeg lukker forbindelsen når jeg er færdig med min sql kald.

Eks:

$testDB = TestDB::getInstance(); //Singleton
$testDB->disconnect(); // Kalder disconnect funktion

Udover det så har mine db klasse en destructor som automatisk kalder disconnect.

Er det bare mig eller det meningen at forbindelser går i sleep når man lukker forbindelsen ?
Avatar billede Slettet bruger
24. september 2009 - 18:00 #1
Der er ikke meget MySQL over din forklaring?
Avatar billede arne_v Ekspert
24. september 2009 - 18:20 #2
Hvordan ser TestDB constructor, getInstance og disconnect ud?
Avatar billede kirsten Nybegynder
24. september 2009 - 18:33 #3
Her er hele klassen:

class TestDB
{
    private $DB_host = "localhost";
    private $DB_user = "";
    private $DB_pass = "";
    private $DB_dbName = "";
    private $DB_dbType = "mysql";

    private $dsn;
    private $db = null;

    public static function getInstance()
    {
        static $instance = null;

        if ($instance === null)
            $instance = new TestDB();

        return $instance;
    }

    public function __destruct()
    {
        //$this->db->disconnect();
    }

    public function __construct()
    {
        $this->dsn = $this->DB_dbType . "://" . $this->DB_user . ":" . $this->DB_pass .
            "@" . $this->DB_host . "/" . $this->DB_dbName;

        $this->db = DB::connect($this->dsn, true);

        if (DB::isError($this->db)) {
            die($this->db->getMessage());
        }
    }
   
    public function disconnect()
    {
        $this->db->disconnect();
    }
}
Avatar billede kirsten Nybegynder
24. september 2009 - 18:47 #4
Glemte lige at skrive at jeg benytter Pears DB pakke.
Avatar billede arne_v Ekspert
24. september 2009 - 18:54 #5
Jeg kan godt genkende Pear DB (hvorfor er du ikke opgraderet til Pear MDB2?).
Avatar billede arne_v Ekspert
24. september 2009 - 19:00 #6
Der er ikke umidelbart noget som springer i oejnene.

Jeg er lidt skeptisk overfor brug af singleton til dette formaal. Men lad os antage at det giver mening her.

Proev og saet noget debug print ind ved connect og disconnect for at se om der bliver kaldt 1:1.
Avatar billede kirsten Nybegynder
24. september 2009 - 23:37 #7
Jeg anede faktisk ikke den eksisterede.. !
Men den skal jeg da kigge på :)
Jeg smider noget debug på og ser hvad der sker!
Tak for input indtil videre! :)
Avatar billede kirsten Nybegynder
25. september 2009 - 12:05 #8
Hej igen,
jeg har debugget lidt, men blev ikke meget klogere..
Jeg har en fornemmelse af at det måske er en bug i pears DB pakke.
Jeg har nu "opgraderet" til mdb2 og det virker efter hensigten :)
Må sige at mdb2 pakken er et KÆMPE skridt op af stigen i forhold til DB pakken!

Siger tak for infoen og smid et svar hvis du have point!

:)
Avatar billede arne_v Ekspert
25. september 2009 - 14:59 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester