Hallo, seitdem ich mein Shop auf die Version 4.1.4 upgedatet habe, führt der Aufruf des System-Crons zu einem Fehler. Den Cache habe ich bereits im Shop-Backend über Einstellungen / Caches Performance geleert. Wenn ich den Cron per Browser ausführe erhalte ich folgende Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‚Shopware_CronJob_ClearHttpCache‘ for key ‚action‘ in Zend/Db/Statement/Pdo.php on line 234 Stack trace: #0 Zend/Db/Statement.php(320): Zend_Db_Statement_Pdo->_execute(Array) #1 Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) #2 Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(‚UPDATE s_cront...', Array) #3 Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend_Db_Adapter_Pdo_Abstract-\>query('UPDATE
s_cront…‘, Array) #4 Zend/Db/Adapter/Abstract.php(634): Enlight_Components_Db_Adapter_Pdo_Mysql->query(‚UPDATE `s_cront…‘, Array) #5 Zend/Db/Table/Abstract.php(1133): Zend_Db_Adapter_Abstract->update(‚s_crontab‘, Array, Array) #6 Enlight/Components/Cron/Adapter/DbTable.php(153): Zend_Db_Table_Abstract->update(Array, Array) #7 Enlight/Components/Cron/Manager.php(119): Enlight_Components_Cron_Adapter_DbTable->updateJob(Object(Enlight_Components_Cron_Job)) #8 Enlight/Components/Cron/Manager.php(238): Enlight_Components_Cron_Manager->disableJob(Object(Enlight_Components_Cron_Job)) #9 Shopware/Plugins/Default/Core/Cron/Cron.php(61): Enlight_Components_Cron_Manager->runJob(Object(Enlight_Components_Cron_Job)) #10 Enlight/Controller/Action.php(148): Shopware_Controllers_Backend_Cron->indexAction() #11 Enlight/Controller/Dispatcher/Default.php(521): Enlight_Controller_Action->dispatch(‚indexAction‘) #12 Enlight/Controller/Front.php(214): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #13 Shopware/Components/HttpCache/HttpKernel.php(79): Enlight_Controller_Front->dispatch() #14 Symfony/Component/HttpKernel/HttpCache/HttpCache.php(434): Shopware\Components\HttpCache\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #15 Shopware/Components/HttpCache/AppCache.php(242): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #16 Symfony/Component/HttpKernel/HttpCache/HttpCache.php(230): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #17 Shopware/Components/HttpCache/AppCache.php(86): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #18 Shopware/Bootstrap.php(70): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #19 Enlight/Application.php(192): Shopware_Bootstrap->run() #20 shopware.php(83): Enlight_Application->run() #21 {main} Woran kann das liegen? Würde mich freuen, wenn jemand hier ein Lösung kennt. Viele Grüße Sören
Schau mal unter den Grundeinstellungen ob dein Cronjob zu löschen des Caches zwei mal angelegt ist. Dann einen löschen.
danke erstmal für den Tip. Aber leider scheint das nicht das Probelm zu sein. Unter Grundeinstellungen > System ist “Http Cache löschen” nur einmal eingetragen. Unter Grundeinstellungen > System gibt es noch den Menüpunkt Frontend Cache (Http Cache). Dieser ist aber auch nur einmal eingetragen. Ich habe das Ganze auch getetest, indem ich die Http Cache Funktion deaktiviert habe. Leider erscheint immernoch die Fehlermeldung. Hast Du vielleicht noch eine Idee?
Dann schaue bitte mal nach doppelten Eintragungen in der DB. Hier sollten es nur einmal in der Tabelle s_crontab die Action ClearHttpCache geben.
Okay, ich habe gerade nachgeschaut. In der Tabelle s_crontab gibt es 2 Einträge mit der gleichen Plugin ID: 47 und gleichem Namen. Allerdings die Action mit der genauen Bezeichnung ClearHttpCache gibt es nur einmal. HTTP Cache löschen --> Shopware_CronJob_ClearHttpCache HTTP Cache löschen --> ClearHttpCache Das bedeutet vermutlich, daß es sich hier nicht um doppelte Einträge handelt oder? Ich glaube von den beiden Einträge sollte ich keins lieber löschen. Schade, wäre ja zu einfach gewesen Wenn Du noch eine andere Idee hast vielleicht? Ansonsten, vielen Dank für Deine Unterstützung bisher!
Also in der Tabelle sollten nicht zwei Einträge mit der gleichen ID sein. Ich gehe davon aus, dass dieses deine Problem verursacht hat. Natürlich kann ich für nichts garantieren zumal ich mir es ja auch nicht selber angeschaut habe. Was ich an deiner Stelle machen würde ist ein Backup und dann mal einen Eintrag löschen. Das deine ID bei 49 ist zeigt ja auch, das du hier schon das ein oder andere mal probiert hat. In meiner Testinstallation gehen die ID bis 12. Vlt. ist da was schief gelaufen.
Besten Dank. Das hat geholfen