TRADElube 1.2.0.38 Release Notes
Release Datum: 02.02.2023
Workaround aufgrund eines Bugs in MySQL bzw. in den MySQL Treibern
Die Änderung im Update 1.2.0.32 (am 30.01.2023) bzgl. Optimierung der Ausführung von Aufgaben im Hintergrund funktionierte nicht richtig. Aufgaben mit langer Laufzeit wurden sporadisch nach ein paar Minuten beendet. Das war anfänglich in der Entwicklungsumgebung nicht reproduzierbar und trat dann erst in der Produktivumgebung auf. Es konnte daher die letzten paar Tage bei größeren Mengen an geänderten Daten etwas zu Verzögerungen bei den Übertragungen kommen.
Zwischenzeitlich wurden ein paar Updates (1.2.0.34 - 1.2.0.37) eingespielt zur genaueren Analyse der Ursache und ein paar Workarounds, die aber immer noch nicht zu 100% funktionierten.
Mit diesem Update wurde die Ursache nun eindeutig ermittelt und behoben. Unter MySQL bzw. mit dem MySQL Connector für .Net funktionieren sporadisch die Aktualisierung von DateTime Feldern nicht richtig, wenn diese mit parametrisierten SQL-Statements an den MySQL Server geschickt werden. Der Wert in der Datenbank weicht dann nicht immer aber sporadisch ein paar Sekunden vom ursprünglichen Wert ab. Das war die Ursache, warum sich die Aufgabe dann beendet hat, da hier ein DateTime Feld einmal in der Minute mit dem aktuellen Zeitpunkt während der Ausführung gesetzt wird. Über dieses Vorgehen wird sichergestellt, dass eine Aufgabe nicht doppelt zur gleichen Zeit ausgeführt werden kann. Die Aufgabe wurde aber nach Eintreten dieses Problems beendet, da es so ausgesehen hat, als ob der Wert im Hintergrund von anderer Stelle verändert wurde.
Dieses MySQL Problem kann man aktuell umgehen, indem DateTime Felder nicht über SQL-Parameter sondern direkt im SQL-Text gesetzt werden. Dies wurde nun systemweit für alle DateTime Felder so geändert.
Alter der Bestellungen im Kanal einstellbar
Für TriData wurde diese Einstellung nun ergänzt. Damit werden u. a. Verbesserungen in der Performance vor allem beim Abgleich des Bestellstatus erzielt. Da nun nur noch offene Bestellungen die nicht älter als das eingestellte Alter sind, synchronisiert werden. Zu alte Bestellungen, die niemals einen finalen Bestellstatus aus TriData erhalten haben, fallen also nun aus der Synchronisierung raus.
Für Shopware und für Shöpping hat es diese Einstellung schon gegeben, aber nur für den Download der Bestellungen. Daher wurde diese Einstellung nun jeweils in den Kanal verschoben und das Alter der Bestellungen wird nun nun auch jeweils für die Synchronisierung des Bestellstatus berücksichtigt.
Sollten sie in der jeweiligen Aufgabe "Shopware oder Shöpping Bestellungen Herunterladen" die Einstellung schon individuell angepasst haben, dann müsste dies nun im Kanal nochmal wiederholen. Früher war der Standardwert 7 Tage nun ist der Standardwert jeweils 14 Tage.