Datenbankausfall abfangen
Mazze
- php
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
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
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.
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
das dürft aussichtlos sein. Es gibt einen Connect oder nicht.
Schade... trotzdem Danke.
Gruß,
Mazze
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
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
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
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
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