AJAX Shoutbox - zu viele Connections

Maddin

dev.
ID: 234104
L
24 April 2006
2.951
215
Hi,
ich habe da eine AJAX Shoutbox gemacht. Auf XAMPP lief sie noch ganz gut, doch jetzt habe ich sie auf den Server getan und nun ist Schluss :(...

Es werden viel zu viele Connections zur Datenbank aufgebaut. Wenn ich jedenfalls als SQL Befehl "SHOW PROCESSLIST" eingebe, dann sieht man, dass das maximum erreicht ist.

Ich verstehe nur nicht woran das liegt? Die JavaScript Datei ist im Header des VMS eingebunden und holt sich mit GET alle 10 Sekunden die Ausgabe der PHP Datei. Diese PHP Datei muss natürlich die Einträge auslesen also baut sie eine Verbindung zur Datenbank auf, welche ich dann aber mit db_close(); wieder schließe.

Ich weiß nun echt nicht mehr weiter. Falls ihr Codeschnippsel brauchen solltet, dann sagt das bitte.
Aber vielleicht ist das auch ein bereits bekanntes Problem.

MfG,
Maddin
 
Hi,

was wäre wenn du die DB nicht dicht machst?
Hast du dann weiterhin das Problem?

Bei mir ist es so das ich das nicht schließen darf, wenn ich es schließe bekomme ich den selben fehler.
 
Ja, davor habe ich sie nicht geschlossen, aber da ist leider das gleiche Problem.
Ich include die functions.lib.php vom VMS, starte dann die connection und schließe diese anschließend.

Die JS Datei macht dann den rest...und alle 10 Sekunden sind ja nicht schlimm...wenn ich z.B jede Sekunde den Forcedbereich reloaden tu, dann tritt das ja auch nicht ein.

Aber so kommt nach kurzer Zeit "MySQL Verbindung fehlgeschlagen", bis sich alle Connections wieder schließen...dann gehts wieder...kurz...:ugly:
 
cache doch einfach die ausgabe in eine extra datei, die du dann immer ausgibst, und aktualisiere die dann regelmäßg (also immer wenn eine neue nachricht gespeichert wird)

Gruß Greggy
 
Ja aber das halte ich für absolut Sinnlos xD
Bisher habe ich meine Shoutboxen immer normal programmiert und mit einem iframe eingelesen und dann die ganze Seite reloadet ;)
Demnach müsste AJAX sogar noch sparsamer sein, weil es nur einen div Container refresht.

Das Problem kann eigentlich nur daran liegen, dass die Verbindung nicht richtig geschlossen wird und aufrecht erhalten bleibt, aber Warum Oo?
 
Aufrecht erhalten wird die Verbindung nur bei einer Verbindung via mysql_pconnect (o.ä.). Du solltest untersuchen, ob du in deinen Skripten nicht eine Endlosschleife hast, so dass das Skript nicht beendet wird und somit auch die Datenbankverbindung nicht getrennt wird..
 
So nun geht alles auch mit einer Sekunde refresh.
Und woran lag das? An der functions.lib.php des VMS. Aber ehrlich gesagt weiß ich immer noch nicht warum...
 
Ja aber das halte ich für absolut Sinnlos xD
jup, cachen ist das sinnloseste ever, warum sollte man auch Daten in einem Medium zwischenspeichern, was schneller als die DB ist, um diese zu entlasten, wie unsinnig :LOL:

Bisher habe ich meine Shoutboxen immer normal programmiert und mit einem iframe eingelesen und dann die ganze Seite reloadet ;)
nur weil du bisher immer "Mist" gebaut hast, gibt es keinen Grund auf vernünftigere Lösungen zu switchen? oO
 
Püh lasst mir doch meine AJAX Shoutbox :love:.
Ich kann ja auch nichts dafür, dass eure Webspaces das nicht aushalten :ugly:.

Nee, also es lag ganz einfach daran, dass ich die Simleys aus einem Ordner auslese und ich das beim Auslesen und nicht beim Speichern der Einträge gemacht habe. Folglich hat es gedauert, bis das Scirpt alle Smileys ausgelesesen hat. Und das musste es auch noch für jeden einzelnen Eintrag machen. Demnach wurde die Verbindung zur Datenbank zu lange aufrecht erhalten und bevor es dann alles korrekt ausgelesen wurde wollte sich die JS Datei neue Daten holen und....boom...:ugly:

Nun geht aber alles einwandfrei. Auch mit einem 10 Millisekunden reload 8) (was ich natürlich nicht mache aber es geht ;)).

Trotzdem danke an alle :)
 
Püh lasst mir doch meine AJAX Shoutbox :love:.
Ich kann ja auch nichts dafür, dass eure Webspaces das nicht aushalten :ugly:.

Wir wollen dir immernoch nicht dein Ajax nehmen.. und das hat mit Webspace, Server oder Cluster nichts zu tun, Datenbankabfragen sind generell langsamer als das simple Auslesen einer Datei auf dem Dateisystem..
Und ich bin mal gespannt, was dein Webspace sagt, wenn plötzlich viele Leute deine Seite offen haben..