Mazze: Datenbankausfall abfangen

Hallo.

Ich arbeite an einer Portalseite, bei der unter anderem eine Box mit Informationen aus einem externen Forum angezeigt werden. Diese Box liest per php Daten aus einer externen Datenbank, die aber leider nicht immer zu laufen scheint. Darauf habe ich leider keinen Einfluss.

Hat jemand einen Ansatz, wie man eine Art Timeout abfragen kann, dass, wenn die Datenbank nach X Sekunden nicht reagiert hat, die Box eben nicht angezeigt wird.

Bin für jeden Tipp dankbar.

Gruß,

Mazze

  1. Hallo,

    Hat jemand einen Ansatz, wie man eine Art Timeout abfragen kann, dass, wenn die Datenbank nach X Sekunden nicht reagiert hat, die Box eben nicht angezeigt wird.

    Wenn die Datenbank nicht erreichtbar ist, wird auch die connect-Anweisung fehlschlagen. Frag einfach ab, ob die connect-Anweisung erfolgreich war oder nicht und reagiere entsprechend.

    Gruß,
    Severin

    --
    They that can give up essential liberty to obtain a little temporary safty deserve neither liberty nor safty.
    -- Benjamin Franklin
    1. Wenn die Datenbank nicht erreichtbar ist, wird auch die connect-Anweisung fehlschlagen. Frag einfach ab, ob die connect-Anweisung erfolgreich war oder nicht und reagiere entsprechend.

      Das Problem ist, dass die Fehler-Rückmeldung ca 15 Sekunden dauert, ich würde diese Zeit gerne abkürzen.

      1. Moin Mazze,

        Das Problem ist, dass die Fehler-Rückmeldung ca 15 Sekunden dauert, ich würde diese Zeit gerne abkürzen.

        das dürft aussichtlos sein. Es gibt einen Connect oder nicht.

        Gruß
        Mike

        --
        Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
        1. das dürft aussichtlos sein. Es gibt einen Connect oder nicht.

          Schade... trotzdem Danke.

          Gruß,

          Mazze

        2. Hello,

          Das Problem ist, dass die Fehler-Rückmeldung ca 15 Sekunden dauert, ich würde diese Zeit gerne abkürzen.

          das dürft aussichtlos sein. Es gibt einen Connect oder nicht.

          Ich weiß leider z.Zt. nicht sofort, wo es steht, aber man kann die Socket-Timeouts einstellen. Da musst Du eben mal ein bisschen im PHP-Manual suchen.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Moin Tom,

            Ich weiß leider z.Zt. nicht sofort, wo es steht, aber man kann die Socket-Timeouts einstellen. Da musst Du eben mal ein bisschen im PHP-Manual suchen.

            dann müsste der Connect aber über einen Socket hergestellt werden, oder?

            Grüsse
            Mike

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
            1. Hello,

              Ich weiß leider z.Zt. nicht sofort, wo es steht, aber man kann die Socket-Timeouts einstellen. Da musst Du eben mal ein bisschen im PHP-Manual suchen.

              dann müsste der Connect aber über einen Socket hergestellt werden, oder?

              Ja, und wie wird der bei mysql_connect() intern hergestellt?
              Über Dosentelegraf?

              http://de.php.net/manual/de/function.fsockopen.php

              Irgendwo kann man da auch kurbeln.

              Harzliche Grüße aus http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. Moin Tom,

                Ja, und wie wird der bei mysql_connect() intern hergestellt?
                Über Dosentelegraf?

                Das ist schon klar, aber wenn Du dich um alles selbst kümmern musst (was *.connect() für dich erledigt) wird es doch sehr komplex.

                Also sagen wir mal so, es ist wahrscheinlich nicht unmöglich die Antwortzeit zu verkürzen, aber ......

                Grüsse
                Mike

                --
                Freunde kommen und gehen. Feinde sammeln sich an.
  2. Moin Mazze,

    Hat jemand einen Ansatz, wie man eine Art Timeout abfragen kann, dass, wenn die Datenbank nach X Sekunden nicht reagiert hat, die Box eben nicht angezeigt wird.

    ich würde das Handle für den db_connect auswerten?

    Gruß
    Mike

    --
    Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."