Dringendes Problem !!!

In diesem Forum können Fragen zum OrderSprinter gestellt werden.
SpeedyMUC
Beiträge: 7
Registriert: Di 29. Mär 2016, 19:10

Dringendes Problem !!!

Beitrag von SpeedyMUC »

Hallo,

wir haben heute von ubuntu 14.04 auf 16.04 und ordersprinter 1.2.14 upgedatet ...

Wir verwenden jetzt PHP7. Auf der WebSeite steht ja PHP5 oder PHP7

Das Senden von Bestellungen geht nicht mehr... Der Fehler is command=addProductListToQueue und im PHP-Log steht:

[Sat Sep 10 13:12:58.728336 2016] [:error] [pid 2783] [client 192.168.125.215:52045] PHP Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00' for column 'readytime' at row 1 in /var/www/html/m29kasse/webapp/php/queuecontent.php:944\nStack trace:\n#0 /var/www/html/m29kasse/webapp/php/queuecontent.php(944): PDOStatement->execute(Array)\n#1 /var/www/html/m29kasse/webapp/php/queuecontent.php(68): QueueContent->addProductListToQueue('513', Array, '0', 's')\n#2 /var/www/html/m29kasse/webapp/php/contenthandler.php(29): QueueContent->handleCommand('addProductListT...')\n#3 {main}\n thrown in /var/www/html/m29kasse/webapp/php/queuecontent.php on line 944, referer: http://192.168.125.100/m29kasse/webapp/ ... l?v=1.2.14

Was kann das sein?

Viele Grüße

Tino
pichel
Administrator
Beiträge: 1154
Registriert: So 13. Sep 2015, 19:48
Wohnort: Hamburg
Kontaktdaten:

Re: Dringendes Problem !!!

Beitrag von pichel »

Hallo Tino,

es scheint so zu sein, dass mit Ubuntu 16.04 die Datenbankkonfiguration anders ist, d.h. Datumsangaben wie '0000-00-00 00:00:00' nicht mehr funktionieren. Diese verwende ich aber an verschiedenen Stellen, weil es die SQL-Queries übersichtlicher macht (weil ich nicht auf NULL testen muss).

Aber es gibt eine Lösung (beschrieben hier: http://stackoverflow.com/questions/3637 ... 0#36374690):
Strict mode affects whether the server permits '0000-00-00' as a valid date: If strict mode is not enabled, '0000-00-00' is permitted and inserts produce no warning. If strict mode is enabled, '0000-00-00' is not permitted and inserts produce an error, unless IGNORE is given as well. For INSERT IGNORE and UPDATE IGNORE, '0000-00-00' is permitted and inserts produce a warning.
Du musst also STRICT_TRANS_TABLES abschalten. Per SQL geht das mit dem Kommando

Code: Alles auswählen

SET sql_mode = '';
Wenn du die Workbench verwendest, müsste man das eigentlich auch da konfigurieren können.

Viele Grüße,

Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
SpeedyMUC
Beiträge: 7
Registriert: Di 29. Mär 2016, 19:10

Re: Dringendes Problem !!!

Beitrag von SpeedyMUC »

Ja, das hatte ich dann auch schon festgestellt.

Das wurde ab MySql 5.7.4 defaultmäßig abgeschaltet... ( Was ich übrigens richtig finde, es gib für diesen Fall NULL als Datenbank-Value )

Wird das irgendwann mal umgebaut oder muß ich die Datenbank wirklich umkonfigurieren?

Ich habe aber folgenden Parameter ausgemacht: ALLOW_INVALID_DATES
Ich hatte den insert-Befehl mal auf '1000-10-10' mal umgestellt, dann konnte man es einfügen...


Dann setze ich die Kiste wieder mit 16.04 auf und ändere die Datenbankkonfiguration... Stellt sich nur die Frage, ob man sich in einem Jahr
bei einem eventuellen Neuaufbau daran noch erinnert... :-(

---------------

Gibt es für Ordersprinter vielleicht eine Beispielkonfiguration der my.cnf für die MySql Datenbank? Ich bin eher in der Oracle / Exadata-Welt zu
Hause und das Performancetuning der MySQL-Engine ist nicht mein Gebiet. Irgend etwas lastet unsere CPU komplett schon beim Anmelden der Bereitstellung komplett aus. Der Server ist ein i3 mit 4GB RAM, das sollte doch dafür locker reichen, wenn man Ordersprinter auch auf einem Raspberry Pi betreiben kann.

---------------

Viele Grüße

Tino
pichel
Administrator
Beiträge: 1154
Registriert: So 13. Sep 2015, 19:48
Wohnort: Hamburg
Kontaktdaten:

Re: Dringendes Problem !!!

Beitrag von pichel »

Hallo Tino,

die Möglichkeit, '0000...' zusätzlich zum Null-Value als Datetime zuzulassen, haben die MySql-Entwickler ganz bewusst entschieden, denn es bietet bestimmte Vorteile. Zum Beispiel verbessert es oft die Lesbarkeit von Prepared Statements, da Fallunterscheidungen für das Value Binding entfallen.

Trotzdem habe ich bereits in den Vorversionen angefangen, die 0000s auszubauen und werde das auch weiter verfolgen, um diese Konfigurationsanpassungen nicht erforderlich zu machen. Da werden bestimmt noch andere Anwender drüber stolpern.

Zum anderen Punkt: der Performance. Verschiedene Anwender haben berichtet, dass nach Anpassungen der Table-Struktur die Db-Geschwindigkeit stark absackte (und genau das passiert beim Update von einigen Versionen). Ich konnte das Problem bei mir allerdings bisher nicht beobachten. Jedenfalls hat es bei den Anwendern geholfen,

1. die Db zu exportieren
2. eine Neuinstallation
3. die Sicherung wieder einzuspielen.

(Wenn die Sicherung sehr groß ist und das Einspielen über OrderSprinter -> Verwaltung passieren soll, ist möglicherweise eine Anpassung der max-upload-size in der php.ini erforderlich.)

Gruß,

Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
SpeedyMUC
Beiträge: 7
Registriert: Di 29. Mär 2016, 19:10

Re: Dringendes Problem !!!

Beitrag von SpeedyMUC »

Hallo Stefan,

das Ausbauen kann ich nur befürworten. M.E. mache es eben keinen Sinn für NULL zwei verschiedene Zustände zu haben, man muß da eben mehr beachten, als es bei nur einem. Ich glaube auch, da es genau deshalb jetzt per DEFAULT nicht mehr möglich ist

Soll aber nicht mein Problem sein, das mußt Du für Dich entscheiden. Ich bin nur mal gefragt worden, ob ich es mal installieren kann... :lol:

Bei den Performanceproblemen kann ich das mal probieren. Ich vermute da mal, das durch das Anhängen von Spalten die Tabellen in Stücke zerlegt werden, weil der Platz für die Breite nicht mehr reicht. Das wird natürlich beim neu Einspielen geändert.

Ich werde mir mal einen Job schreiben, der OPTIMIZE TABLE für jede Tabelle einmal pro Woche laufen läßt. Damit sollte das auch glatt gezogen werden... Und da die DB sowieso 24/7 läuft, kann sie sich auch irgendwann tagsüber reorganisieren, wenn der Laden geschlossen ist. :-)

Viele Grüße

Tino
pichel
Administrator
Beiträge: 1154
Registriert: So 13. Sep 2015, 19:48
Wohnort: Hamburg
Kontaktdaten:

Re: Dringendes Problem !!!

Beitrag von pichel »

Hallo Tino,

auf Wunsch mache ich ja (fast) alles :)

Also: die 0000-DateTime-Werte sind nun durch NULL-Werte ersetzt, so dass du in der MySQL-Db keine Sonderkonfiguration machen musst.
Und die OPTIMIZE-Möglichkeit habe ich nun als Button in der Verwaltungsansicht (wenn man sich als Admin einloggt) im Bereich "Datenbanken" eingebaut. Dann werden die Tabellen, in denen viele Einfüge-Operationen vorgenommen werden, aufgeräumt.

Gruß,

Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
thomas_eburg
Beiträge: 28
Registriert: Fr 11. Dez 2015, 10:25
Wohnort: Frorath (Westerwald)

Re: Dringendes Problem !!!

Beitrag von thomas_eburg »

Also nach langer Zeit ... Hallo ...
Da hier am Anfang vom Ubuntu 16.04 die Rede ist ... wollte ich mich dazu passend hier melden, um keine
neue Frage aufzumachen.
Ich hatte schon vor ca. 1 Jahr mal eine Installation gemacht ... inklusive Rasperry ... USB Drucker ... das war
insgesamt eine Runde Sache ... aber ... ist in der "Praxis" sprich im Alltag leider nie angekommen.
Da nun ja ganz überraschend das Jahr 2016 zu Ende geht ... und damit in meinem Bekanntenkreis (Hotel)
auch wieder bemerkt wird, das die Uralte Kasse ... auf DOS 6.2 Basis ... wohl nicht mehr vom
Finanzamt anerkannt wird ... darf ich nun wieder die damals gekauften Sachen in Betrieb nehmen ...

ALSO KONKRET ... ich plane diesmal eine Installation unter LUBUNTU (wegen älterer Hardware) 16.04
... die läuft auch bereits ... Ordersprinter leer installiert ... alles scheinbar ok ...
Muß ich für die hier in dieser Forumsfrage genannten Dinge (0000...) irgendetwas an der Lubuntu/Mysql/PHP
Geschichte verändern ... ? oder ist die Sache in der aktuellen Version 1.2.21 schon "drin" ?
pichel
Administrator
Beiträge: 1154
Registriert: So 13. Sep 2015, 19:48
Wohnort: Hamburg
Kontaktdaten:

Re: Dringendes Problem !!!

Beitrag von pichel »

Hallo Thomas,

eigentlich sollte es auch mit Lubuntu keinerlei Probleme geben. Wenn doch, bitte melden.

Wenn das Hotel zufällig HS/3 als Hotelsoftware einsetzt, kannst es nun auch von der Schnittstelle von OrderSprinter profitieren.

Gruß,

Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
Antworten