Jump to content
xt:Commerce Community Forum

Massig SQL Error Emails vom Shop


mizzy

Recommended Posts

Hallo,

seit ich mit dem Shop online bin erhalte ich total Viele Emails vom Shop

in diesem Format:


mysql error: [2006: MySQL server has gone away] in EXECUTE

("UPDATE xt_sessions2 SET expiry = NOW() + INTERVAL 1440 SECOND

 ,expireref='', modified = NOW() WHERE /*! BINARY */ 

sesskey = 'c04d2d16aabbff612e1e238aXXXXXXXX' AND expiry >= NOW()")

Nur die Session-ID ist eine andere.

Mittlerweile 22 Emails innerhalb von nicht mal 2 Stunden.

Was ist das?

V.G. Micha

Link to comment
Share on other sites

Kann die Abfrage denn nicht anders gestaltet werden? Das solche Fehler nicht auftreten können?

Hat das was damit zu tun, das in der dreier Version die Sessions in Daten geschrieben werden konnten (konnte man ja bei Installation auswählen) und in Veyton die Sessions immer in die DB geschrieben werden?

Hoster (all-inkl) ist da auch schon dran, aber ich vermute, der wird da soviel auch nicht ausrichten können.

V.G.

Micha

Link to comment
Share on other sites

Hallo,

folgende Meldung hat mir all-inkl.com dazu geschrieben:

permanente DB Verbindungen sind grundsätzlich schlecht. Ihnen stehen 25 gleichzeitig offene verbindungen zur verfügung, wenn nun 25 User im Shop sind ist bei permanenten DB Verbindungen Schluss weil diese ja die ganze Zeit offen gehalten werden. Ich empfehle Ihnen daher die sessionverwaltung auf Dateibasierend umzustellen.

Kann mir jemand was dazu sagen?

Benötigt der Shop wirklich für die Sessions Persistente Datenbankverbindungen???

V.G Micha

Link to comment
Share on other sites

Hallo,

also all-inkl. hat mir nun folgendes mitgeteilt:

Die Techniker haben nun auf die Datenbank 3 Indizes gesetzt auf:

ALTER TABLE `xt_products` ADD INDEX `all_inkl_manufacturers_id` (`manufacturers_id` ) ;

ALTER TABLE `xt_orders_products` ADD INDEX `all_inkl_orders_id` (`orders_id` );

ALTER TABLE `xt_orders_products` ADD INDEX `all_inkl_products_quantity` (`products_quantity` );

Informationen zu Indizes finden Sie unter folgendem Link:

http://dev.mysql.com/doc/refman/5.1/de/multiple-column-indexes.html

Dies sollte zur Entlastung und Verbesserung der MySQL Abfragen führen. Diese können jedoch jederzeit wieder gelöscht werden. 150 Kunden auf einem Shop sind auch in kleineren Tarifen problemlos möglich. Die Auslastung hier muss also andere Ursachen haben. Ebenso wird der von Ihnen genutzte Shop auch von anderen Usern genutzt. Die Begrenzung von 25 gleichzeitigen Datenbank Abfragen sollte hier auch keine Probleme verursachen da bei ordnunsggemäßer Programmierung die Datenbank Abfragen nach Nutzung wieder geschlossen werden. Bitte testen Sie einmal ob nach dem Setzen der Indizes das Problem behoben wurde.

Also was soll mir gesagt werden?

So recht verstehe ich das nicht mit den Indizies.

Und ich versteh auch nicht so ganz warum wieder von den 25 gleichzeitigen Datenbankabfragen gesprochen wird. Ich dachte der Shop nutzt keine persistente Verbindung.

V.G. Micha

PS: Nachtrag, scheinbar hat auch das nichts genutzt. Denn die Datenbankfehleremails des Shops kommen weiterhin. Und dieses Mal habe ich den selbst mal absichtlich verursacht. Das geht indem man einfach mal sich anmeldet, nen Produkt in den Warenkorb legt und dann mal so 10 bis 15 Minuten nichts macht, z.B. wo anders surfen oder Emails schreiben. Dann geht man mal wieder in den Shop, will auf den Warenkorb klicken bzw. Bestellvorgang einleiten und was muss ich da sehen, es sind auf einmal keine Artikel mehr im Warenkorb weil die Session gelöscht wurde. Auch bin ich gleich nicht mal mehr eingeloggt.

Aber jetzt zum eigentlich komischen:

Log ich mich aus, aus dem Shop mach Firefox zu und log mich wieder ein, ist doch glatt der Warenkorb wieder da, der vorher weg war.

Also woran liegt das nun am Shop oder am Hoster? Wobei ich aufgrund meiner Fehlersuche fast denke, dass das Problem Shopseitig besteht.

Zumal ja all-inkl. nicht irgendso ne Billighoster Schmiede ist :-) Zumindest nicht der Business Tarif.

Link to comment
Share on other sites

So noch einmal neues vom Hoster:

in der Datei ./xtFramework/library/adodb/drivers/adodb-mysql.inc.php wurden noch mysql_pconnects verwendet diese haben wir einmal abgeändert.

Desweiteren haben wir noch 2 Indizes gesetzt die aus der Analyse des Slowqueries.logs

ALTER TABLE `xt_plugin_products` ADD INDEX ( `plugin_status` )

ALTER TABLE `xt_languages` ADD INDEX ( `sort_order` )

V.G. Micha

Link to comment
Share on other sites

So, also der Hoster macht jetzt nichts mehr, er ist der Meinung das ist eine Sache für die Shopprogrammierer, da dies am Shop liegt.

Muss natürlich sagen, das die Änderung an der

./xtFramework/library/adodb/drivers/adodb-mysql.inc.php

scheinbar was gebracht hat. Das teste ich gerade. -->

Nachtrag hat nichts gebracht. SQL Error besteht weiter und Sessions werden nach gewisser Zeit des nichts tun einfach gelöscht!

Es ist nur verwunderlich das der Shop bei Hosteurope in irgendwelchen Billigtarifen läuft, aber bei etwas teurerer Tarifen wie ich ihn bei All-inkl.com hab, bei längeren Sitzungen einfach immer die Datenbank abschmiert und die Session einfach weg ist. Aber nach erneuten Einloggen ist der Warenkorb wieder da.

Bin echt ratlos.

V.G. Micha

Link to comment
Share on other sites

Also noch mal ich.

Mein Hoster (all-inkl.com) ist weiterhin der Meinung das es am Shop liegt und Datenbankverbindungen nicht geschlossen werden von Scripten und dies den Fehler verursacht

Anbei noch einmal die Antwort:

Zum Fehler ist noch zu sagen das die Datenbank nicht defekt ist sondern die Anzahl der maximalen parallelen DB Verbindungen erreuicht wurde. Dieser Wert steht momentan bei 25. Die Tatsache das die Meldung auch kommt wenn wenig Betrieb auf den Seiten ist deutet eher darauif hin das eine benutzte DB Verbindung nicht wieder vom Script geschlossen wird wie es in sekundenbruchteilen üblich ist sondern noch offenbleibt. Diese offenen Verbindungen zählen dann natürlich bei den Userconnections mit und wenn 25 Stück erreicht sind erscheint die Meldung. Die 25 ist ein Standardwert bei uns. Daher stellt sich die Frage ob der Shop eventuell speziell mit SCripten erweitert wurde die DB-Verbindungen nicht schließen oder andere Scripte neben dem Shop zur DB Connecten.

Die gleichzeitigen DB Verbindungen können Sie aber gar nicht vermeiden da ja Scripte auch parallel aufgerufen werden können.

Stimmen Sie dem Uzug auf einen modernern Server zu? Wie gesagt sind die 25 Verbindungen bei uns Standard und alle System laufen damit. Wenn der Shop auch bei wenigen Besuchern die Meldung bringt kann es sein das DB-Verbindungen offen bleiben, ob persistene Connects oder nicht. Durch den Umzug auf einen modernen Server soll ausgeschlossen werden das der DB-Server zu langsam antwortet.

V.G. Micha

Link to comment
Share on other sites

das wäre dann aber eine serversache.

Wir verwenden adodb als DB library, verbindungen werden von PHP selbst nach scriptende geschlossen.

Funktioniert ja auch auf jedem anderen Hoster. (sogar 1&1 und Strato ;) ).

Das Sessionhandling ist aber m.E. nicht Provider Sache. Bei Verlängerung der Session entsteht ja der DB Fehler. Die Session wird einfach gekillt. Das passiert ja selbst wenn nur ein User im Shop ist.

Link to comment
Share on other sites

Hallo,

mein Provider war nun so nett mich über nacht auf einen neuen Server zu schieben. Das Problem tritt leider weiter auf.

Hab auch noch folgenden Hinweis zu der Fehlermeldung gefunden.

Die SQL-Abfrage war zu lang. Du musst die maximale Paketgröße erhöhen oder die Abfrage aufteilen. Das tritt z.B. oft bei Imports auf, die alle Daten in einer einzigen INSERT-Abfrage haben.

Bin nun echt etwas ratlos.

Aber scheen is das nicht wenn der Kunde was in Warenkorb legt und dann ist irgendwann die Session weg, nur weil der Kunden ne zeitlang nichts im Shop geklickt hat. Das müsste sich doch irgendwie beheben lassen, oder?

V.G. Micha

Link to comment
Share on other sites

Das Sessionhandling ist aber m.E. nicht Provider Sache. Bei Verlängerung der Session entsteht ja der DB Fehler. Die Session wird einfach gekillt. Das passiert ja selbst wenn nur ein User im Shop ist.

Die session wird aber nicht vom Shop gekillt, sondern diese wird vom Server gekillt.

-> Session garbage Collector nennt sich dies, und ist übe die php.ini einstellbar

Der Shop selbst, löscht keine Daten aus der session Tabelle, das wird vom Server angestoßen.

Link to comment
Share on other sites

Hallo,

Ich hatte das Problem der massenhaften SQL-Errors auch schon, und zwar unter anderem auch bei jedem Kundenlogin.

Ich habe jetzt mal auf dem gleichen Server xt:c komplett neu in ein anderes Verzeichnis installiert, mit neuer Datenbank etc. ... OK, war echt viel Arbeit, aber:

Bis jetzt treten keine sql-error mehr auf.

Gruß Dietmar

Link to comment
Share on other sites

  • 1 year later...
  • 11 months later...
  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...