Dominik Ruppert: adoDB

Hi,

ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze meinen virtuellen speicher, das ding läuft einfach über, die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????

Gruss
Dominik

  1. Halihallo Dominik

    ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze meinen virtuellen speicher, das ding läuft einfach über, die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????

    Richtig.

    1. Hast du irgendwo eine Endlosschleife? - Halte ich für am
       wahrscheinlichsten. Debugge das Programm.
    2. Windows ist dafür bekannt, dass der Speicher oftmals nicht, oder
       erst viel später wieder freigegeben wird. Ist aber
       unwahrscheinlich für deine Symptome.
    3. ADO braucht selber auch Speicher, wobei dies normalerweise nicht
       dazu führen sollte, dass der ganze virtuelle Speicher gefressen
       wird. => unwahrscheinlich.

    Tipp: Entweder du findest die Endlosschleife in deinem Programm, oder
    versuche es mit einem einfachen Script, welches auf ADO zugreift, so
    könntest du feststellen, ob das Problem zwischen PHP und System oder
    an deinem Programm liegt.

    BTW: ADO wird vom System verwaltet. Die Instanz wird wohl beim Ende
    des Scriptes freigegeben, aber die "Klasse" (Libraries) bleiben
    ggf. erhalten (falls z.B. eine andere Instanz von ADO offen ist,
    COM benutzt ein ReferenceCounting, der Speicher für die ADO-
    Verwaltung wird erst frei gegeben, wenn keine Instanzen mehr
    existieren).

    Viele Grüsse

    Philipp

    --
    M$: Patches - don't.
    1. Hi Philipp!

      Richtig.

      1. Hast du irgendwo eine Endlosschleife? - Halte ich für am
           wahrscheinlichsten. Debugge das Programm.
      2. Windows ist dafür bekannt, dass der Speicher oftmals nicht, oder
           erst viel später wieder freigegeben wird. Ist aber
           unwahrscheinlich für deine Symptome.

      geht es um Windows? Hab ich wohl glatt überlesen ;-)

      1. ADO braucht selber auch Speicher, wobei dies normalerweise nicht
           dazu führen sollte, dass der ganze virtuelle Speicher gefressen
           wird. => unwahrscheinlich.

      Ich könnte mir vorstellen dass er evtl. http://php.weblogs.com/ADODB meint, ist im Prinzip _die_ DB-Abstraktion nach PEAR-DB, MDB und MDB2 (btw. vermutlich ab PHP 5.1 gibt es so eine nette OO-Abstraktion endlich auf PHP-Ebene, und zwar PDO: http://www.edwardbear.org/pdo.phps, kommt von JDO...)

      Grüße
      Andreas

      --
      SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
      1. Halihallo Andreas

        geht es um Windows? Hab ich wohl glatt überlesen ;-)
        Ich könnte mir vorstellen dass er evtl. http://php.weblogs.com/ADODB meint, ist im Prinzip _die_ DB-Abstraktion nach PEAR-DB, MDB und MDB2 (btw. vermutlich ab PHP 5.1 gibt es so eine nette OO-Abstraktion endlich auf PHP-Ebene, und zwar PDO: http://www.edwardbear.org/pdo.phps, kommt von JDO...)

        Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)

        Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
        GUID einführen! :-)

        Viele Grüsse

        Philipp

        --
        M$: Patches - don't.
        1. Hi Philipp!

          Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)

          Noch wissen wir nicht wer richtig geraten hat ;-)

          Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
          GUID einführen! :-)

          *lol* kannst Du Dir ja mal auf die Fahnen schreiben ;-)

          PTSC - Philipps Terminology Standardization Consortium ...

          Grüße
          Andreas

          --
          SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
          1. Halihallo Andreas

            Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)
            Noch wissen wir nicht wer richtig geraten hat ;-)

            Richtig, es besteht noch Hoffnung für mich ;-)

            Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
            GUID einführen! :-)
            *lol* kannst Du Dir ja mal auf die Fahnen schreiben ;-)
            PTSC - Philipps Terminology Standardization Consortium ...

            Wunderprächtige Idee, ich reserviere gleich mal die Domain :-)
            Neeiin, scho weg ;-)  Egal, schwimmen macht eh mehr Spass, als alles
            zu indizieren...

            Viele Grüsse

            Philipp

            --
            M$: Patches - don't.
  2. Hi!

    ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze

    Was für einen Link?

    meinen virtuellen speicher, das ding läuft einfach über,

    Kommt diese PHP-Fehlermeldung?

    die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????

    Ja.

    Siehe auch den Zend-Artikel zum Thema "Reference Counting", da wird erklärt wie PHP mit den Variablen im Speicher umgeht: http://www.zend.com/zend/art/ref-count.php

    evtl. helfen Dir folgende Funktionen das Problem zu finden:
    http://de3.php.net/manual/de/function.memory-get-usage.php oder
    http://de3.php.net/manual/de/function.getrusage.php

    Am besten natürlich mit einem Profiler wie xdebug: http://xdebug.org/

    Wie sieht denn der relevante Code aus? Kann es sein dass Du tatsächlich MB-weise Daten aus der DB in ein Array/Objekt schreibst?

    Grüße
    Andreas

    --
    SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/