Shop offline vor abschliesendem Bestellvorgang (Zahlungspflichtig bestellen)

Hallo liebe Community,

Nachdem ich den Shop mit Artikeln gefüllt habe und den Bestell- Zahlungsablauf testen wollte trat plötzlich, nach ein paar (3) Bestellungen der Fehler auf. Wohlgemerkt 3 Bestellungen gingen problemlos mit Email-Benachrichtigung. ich habe dann nur den smtp Server mit Zugangsdaten im Adminbereich ergänzt und danach gingen die Bestellungen nur noch bis zum letzten Schritt. Wenn ich dann auf "Zahlungspflichtig bestellen klicke, dauert es ein wenig und eine Weise Seite mit “Shop” offline kommt.
ich kann mir aber nicht vorstellen das es am Eintragen des smtp Servers liegt. da die exception_log folgendes ausspuckt:

oxConnectionException-oxException (time: 2016-08-08 13:12:45): [2006]: mysql error: [2006: MySQL server has gone away] in EXECUTE (select COUNT(*) from oxtplblocks where oxactive=1 and oxshopid='oxbaseshop' and oxmodule in ( 'invoicepdf', 'oepaypal' ) , Array) with user -----

den User habe ich entfernt im Code

Ich habe folgendes versucht:

  1. /tmp Ordner gelöscht
  2. Module deaktiviert (tmp Ordner-Inhalt) wieder gelöscht
  3. Module aktiviert (tmp Ordner-Inhalt wieder gelöscht
  4. Browsercache gelöscht
  5. Views neu upgedated (obwohl ich kaum Änderungen an Views vorgenommen habe)

Die php_error log vom Provider gibt keine Fehler diessbezüglich aus

ich hab dann in der config.inc.php den Debug Modus aktiviert um dort mehr zu erfahren.

Wenn ich debug auf 3 stelle kommt sofort folgende Fehlermeldung:

oxConnectionException-oxException (time: 2016-08-08 13:48:09): [1146]: mysql error: [1146: Table 'xb........adodb_logsql' doesn't exist] in EXECUTE (truncate table adodb_logsql, ) with user xb.... Stack Trace: #0 /home/www/trombonisme-shop/core/adodblite/adodbSQL_drivers/mysql/mysql_driver.inc(369): adodb_throw('mysql', 'EXECUTE', 1146, 'Table 'xb...._d...', 'truncate table ...', false, Object(object_ADOConnection)) #1 /home/www/trombonisme-shop/core/adodblite/adodb.inc.php(316): mysql_driver_ADOConnection->do_query('truncate table ...', -1, -1, false) #2 /home/www/trombonisme-shop/core/oxdb.php(298): ADOConnection->Execute('truncate table ...') #3 /home/www/trombonisme-shop/core/oxdb.php(441): oxDb->_setUp(Object(object_ADOConnection)) #4 /home/www/trombonisme-shop/core/oxdb.php(499): oxDb->_getDbInstance() #5 /home/www/trombonisme-shop/core/oxconfig.php(538): oxDb::getDb() #6 /home/www/trombonisme-shop/core/oxconfig.php(399): oxConfig->_loadVarsFromDb('oxbaseshop') #7 /home/www/trombonisme-shop/core/oxconfig.php(331): oxConfig->init() #8 /home/www/trombonisme-shop/core/oxconfig.php(1934): oxConfig->getConfigParam('blProductive') #9 /home/www/trombonisme-shop/core/oxshopcontrol.php(618): oxConfig->isProductiveMode() #10 /home/www/trombonisme-shop/core/oxshopcontrol.php(582): oxShopControl->_getErrorReportingLevel() #11 /home/www/trombonisme-shop/core/oxshopcontrol.php(121): oxShopControl->_runOnce() #12 /home/www/trombonisme-shop/core/oxid.php(40): oxShopControl->start() #13 /home/www/trombonisme-shop/index.php(26): Oxid::run() #14 {main} Connection Adress --> Connection Error --> 

User und Tabellen habe ich im Code hier abgeändert.

Wenn ich den Debug Modus in der config.inc.php auf 1 Stelle komme folgende Fehlermeldung nachdem ich den Button geklickt habe (Zahlungspflichtig bestellen)

oxConnectionException-oxException (time: 2016-08-08 13:54:04): [2006]: mysql error: [2006: MySQL server has gone away] in EXECUTE (select `oxv_oxarticles_de`.`oxid` from oxv_oxarticles_de where oxv_oxarticles_de.oxid in ( '05848170643ab0deb9914566391c0c63','058de8224773a1d5fd54d523f0c823e0' ) and oxremindactive = '1' and oxstock <= oxremindamount, Array) with user xb... Stack Trace: #0 /home/www/trombonisme-shop/core/adodblite/adodbSQL_drivers/mysql/mysql_driver.inc(369): adodb_throw('mysql', 'EXECUTE', 2006, 'MySQL server ha...', 'select `oxv_oxa...', Array, Object(object_ADOConnection)) #1 /home/www/trombonisme-shop/core/adodblite/adodb.inc.php(316): mysql_driver_ADOConnection-&gt;do_query('select `oxv_oxa...', -1, -1, Array) #2 /home/www/trombonisme-shop/core/oxlegacydb.php(128): ADOConnection->Execute('select `oxv_oxa...', Array) #3 /home/www/trombonisme-shop/core/oxlist.php(386): oxLegacyDb-&gt;select('select `oxv_oxa...') #4 /home/www/trombonisme-shop/application/models/oxarticlelist.php(79): oxList->selectString('select `oxv_oxa...') #5 /home/www/trombonisme-shop/application/models/oxarticlelist.php(836): oxArticleList-&gt;selectString('select `oxv_oxa...') #6 /home/www/trombonisme-shop/core/oxemail.php(1268): oxArticleList->loadStockRemindProducts(Array) #7 /home/www/trombonisme-shop/application/controllers/thankyou.php(150): oxEmail->sendStockReminder(Array) #8 /home/www/trombonisme-shop/core/oxshopcontrol.php(479): Thankyou->render() #9 /home/www/trombonisme-shop/core/oxshopcontrol.php(361): oxShopControl->_render(Object(Thankyou)) #10 /home/www/trombonisme-shop/core/oxshopcontrol.php(126): oxShopControl->_process('thankyou', NULL, NULL, NULL) #11 /home/www/trombonisme-shop/core/oxid.php(40): oxShopControl->start() #12 /home/www/trombonisme-shop/index.php(26): Oxid::run() #13 {main} Connection Adress --> Connection Error --> 

Das heisst für mich, dass er unmittelbar beim abschicken der letzten Daten im Bestellvorgang die Connection zur Datenbank verliert oder?

Aber warum? keine Ahnung. Außer Produkte einzupflegen, smtp Server zu ändern und Bestellvorgang durchzugehen habe ich nichts am Shop geändert.

Meine Shopversion ist:
Community Edition 4.10.1
PHP Version = 5.6.24
In der (Systemgesundheit) ist auch alles Grün

Ich bin wirklich ratlos.
A little help would be great?

Lieber Gruß
Jürgen

Aktualisiere die Views (Service-Tools->Button) und leere TMP. Damit sollte der Fehler verschwinden.

Leider nein.
Das habe ich schon gemacht, gerade eben nochmal
Views - update
tmp geleert.

er geht offline wenn ich abschliessend kaufen will. ?

Du musst die execution time für mysql hochsetzen. Hast du Einfluss auf den Server ?

OK, dann könnten die Indizes der Tabellen fehlen und müssen aktiviert werden. Bitte mal danach suchen, habe den Link gerade nicht zur Hand.

Hm, also die Indizies der Tabellen sind vorhanden bis auf zwei Log Tabellen mit keinen Datensätzen. Dann gibt es noch ein paar “oxv_” Tabellen die alle keine Datensätze beinhalten (?) -

An der mysql excecution time kann es denke ich wohl kaum liegen. Hab grade mal 20 Artikel oder sowas mit geringen Datensätzen angelegt.
Die Frage wäre dann auch ob es tatsächlich an der m[I]ax_execution_time[/I] in der php.ini oder an der [I]max_allowed_packet[/I] in der /etc/mysql/my.cnf) liegt, auf die ich aber nicht zugreifen kann.

Wie gesagt ich kanns mir aber nicht vorstellen dass es bei gerade mal 20 Artikeln dran liegen kann.

Bin für jede Hilfe dankbar.(ich habe eigentlich keine Lust auf anderes Shopsystem zu wechseln) - Aber wenn das Problem nicht lösbar ist ?

Gruß

Habe den Link gefunden. Vielleicht hilft es Dir weiter: http://forum.oxid-esales.com/showthread.php?t=22066&page=2

Danke aber aufgrund des Links den ich dann gefunden habe, ahbe ich ja meine Tabellen überprüft und es gibt keine Tabellen bei denen Indizies fehlen bis auf die 2 log Tabellen.

ich habe mal einen Screenshot der betreffenden Tabelle gemacht bei der nach select COUNT(*) die Connection zur Datenbank abbreißt

Kann die mal bitte jemand vergleichen bzw. überprüfen? es handelt sich um die Tabelle
[I]oxtplblocks[/I]

danke

Nach langem suchen und testen habe ich den vermeindlichen Fehler doch gefunden. Wobei ich aber dabei wiederum was nicht verstehe.

Es lag tatsächlich an den Einträgen unter Stammdaten Grundeinstellungen was den SMTP - Server angeht. Wenn ich die leer lasse funktioniert die Bestellung einwandfrei auch ohne zögern beim abschliessenden Schritt (zahlungspflichtig bestellen)

Seltsam ist aber, dass ich trotz fehlender Einträge bei SMTP-Server, SMTP-Benutzer und SMTP Passwort trotzdem die Bestellbestätigungs-Email für den Shopbetreiber bekomme zusätzlich zur Bestellbestätigungs-Email für den Kunden(Kundenemail)

Also scheint das Problem bei der Abfrage an den SMTP Server zu liegen, der anscheinend zu lange dauert und dadurch die Connection zur Datenbank verloren geht? Keine Ahnung! (Natürlich waren meine SMTP Einträge korrekt!)

Was anderes:
Wo kann man fehlende Übersetzungen ergänzen?
In der Bestätigungs-Email für den Shopbetreiber sind nämlich folgende Error’s ausgegeben:
[I]“ERROR: Translation for EMAIL_ORDER_CUST_HTML_ARTNOMBER not found!”
“ERROR: Translation for EMAIL_ORDER_CUST_HTML_SHIPPINGCARRIER not found!”[/I]

und was bedeutet:
[I]“BEZAHLINFORMATIONEN AUSGESCHALTET - um diese einzuschalten bitte application/views/[theme]/email/html/order_owner.tpl aendern” [/I]

Vielen dank
Gruß

hat sich erledigt, bzw. habs selbst hinbekommen,

musste in der /applikation/translation/de/lang.php folgende Einträge ergänzen.

[I]‘EMAIL_ORDER_CUST_HTML_SHIPPINGCARRIER’ => ‘Der Versand erfolgt mit’,
‘EMAIL_ORDER_CUST_HTML_PLUSTAX1’ => ‘zzgl.’,
‘SHIPPING_VAT2’ => ‘% MwSt., Betrag:’,
‘EMAIL_ORDER_CUST_HTML_ARTNOMBER’ => ‘Art.Nr.:’,[/I]

und in den beiden order_owner.tpl (plain/html) den Hinweis auf die Bezahlinformationen auskommentieren:

<!-- [{oxmultilang ident="PAYMENT_INFO_OFF"}] -->

Zeile 188

Gruß

Wenn Du keine Daten zu einem SMTP-Server angibst, wird die lokale (mail) php-Funktion deines Servers verwendet.

Ok danke.
Trotzdem bleibt eigentlich die Frage warum die Connection zur Datenbank abreißt und der Shop offline geht, bei korrekter Eingabe der Daten zum SMTP Server. Aber das kann ja mehrere Ursachen haben, muss auf jeden Fall was mit der Schnittstelle zum Server zu tun haben. Vielleicht läßt er die Anfrage nicht zu, braucht zu lange zur Verarbeitung, Sicherheitsüberprüfungen etc.etc. keine Ahnung)

egal es geht ja jetzt auch so.

Danke und Gruß