Sven: Perl/ PHP3(4): Datenbankpools möglich ?

Hallo,
ich programmiere derzeit mit Java-Servlets, arbeite dort aus Performancegründen globale Datenbankpools. Gibt es ähnliches auch in Perl oder PHP ?
Ist es bei Perl oder PHP überhaupt möglich, nach einem Request durch einen Browser eine durch Perl od. PHP geöffnete Datenbankverbindung nicht zu schließen , damit der nächste eingehende Request diesselbe Verbindung wieder nutzen kann ? Alle Versuche, so etwas zu programmieren, sind bei mir bis jetzt gescheitert. Ich war mal der Meinung, das die in den Dokumentationen beschriebenen persistenten Datenbankverbindungen eigentlich so etwas machen sollen, scheint aber so nicht zu gehen.
Grüße

  1. Sorry, ich mein natürlich Connectionpools zur Datenbank.
    Grüße

  2. Hallo,

    Ist es bei Perl oder PHP überhaupt möglich, nach einem Request durch einen Browser eine durch Perl od. PHP geöffnete Datenbankverbindung nicht zu schließen , damit der nächste eingehende Request diesselbe Verbindung wieder nutzen kann ?

    Mit Perl,mod_perl und Apache::DBI geht das. Habe ich schon öfters gemacht, funktioniert wunderbar. Es gibt zwar Limits bei dieser Konfiguration (nur die Verbindung bleibt offen, Queries können naturgemäß nicht gespeichert werden, da Du ja nie weißt, welchen Thread von Apache Du als nächstes erwischt).

    Auch sollte die boot- bzw. shutdown-Konfiguration so gestaltet werden, daß kein Deadlock entstehen kann. Ich hatte mal das Problem mit Oracle und SuSE-Linux, wo der Webserver vor Oracle gestartet wurde (ist nicht das Problem) und _nach_ Oracle beendet wurde (das ist das Problem). Beim shutdown konnte Oracle nicht beendet werden, weil noch offene Verbindungen vorhanden waren (die vom Apache), und Apache wurde nicht beendet, weil der shutdown bei Oracle hing. Ist aber nicht so tragisch, weil Du halt nur die init-konfiguration ändern mußt.

    Aber ansonsten funktioniert dieses Gespann wunderbar.
    Änderungen an Scripts gibt es keine, da die persidenten Verbindungen vollkommen transparent erfolgen, also keine modifikationen am DBI-Connect in den Scripts.

    Es ist auch möglich, daß bestimmte Verbindungen bereits beim Satrt vom Apache durchgeführt werden, und nicht nur beim ersten Connect.

    Grüße
       Klaus