AW: Doppelte Bons und Kassenberichte [Multikasse]
Ich kann euch beruhigen: Das ist alles nichts außergewöhnliches. Ob dedicated Server oder 'ne Kiste im Haus, es ist völlig egal, es sei denn ihr habt Kartoffelinternet in der Zentrale
Vorwort:
Das Problem ist maßgeblich nur dann vorhanden, wenn es zu Verzögerungen beim Vorgang des Kassierens kommt. Bei der JTL gehosteten SQL Variante scheint das durch die enorme Auslastung von bis zu 50 Instanzen auf einem Server verursacht. Die Leitung ist einfach Dicht und es werden Anfragen verworfen. (stark vereinfacht)
Ich finde es schon fast unverschämt dafür so viel Geld zu verlangen. SQL Express ist immerhin kostenlos und ne Windows Lizenz kostet auch nicht die Welt. Wartungsaufwand ist nun auch nicht mehr wirklich vorhanden und da spreche ich aus eigener Erfahrung mit meiner eigenen privaten virtualisierten Serverfarm...
Aber genug hier gestänkert
Nichtsdestotrotz bin ich der Meinung, dass es an der Zeit für Luwosoft ist das Bonsystem nun endlich zu reparieren. Es ist ein Programmiertechnischer wie auch Buchhalterischer Supergau wie es derzeit noch gehandhabt wird. Ich kenne den Source nicht aber ich sehe was passiert und kann die logische Konsequenz daraus ziehen:
1.) Bon wird erstellt und die Numer die vom SQL zurückgegeben wird, wird intern verwendet. Das ist soweit OK
2.) Dann aber bevor der Bon auf bezahlt gesetzt wird, wird die Nummer erneut gezogen
anhand der zuletzt erstellten Nummer und dadurch eventuell ein anderer Bon der
zwischenzeitlich erstellt worden ist
überschrieben
Beispiel:
Kasse 1 kassiert > Bon: 1000
Kasse 2 Kassiert > Bon: 1001
Kasse 1 schließt vorgang ab > Bon 1001
Kasse 2 schließt Vorgang ab > Bon 1001
Liebes Luwosoft Team,
ich bin kein professioneller Programmierer aber das könnte ich sogar besser lösen.
Der Fix wurde versprochen aber bis dato nicht geliefert. *sad face*
Hier hab ich jetzt aber auch genug Gestänkert
Nun zur Leistungsstärkeren Lösung
Das Erstaunliche ist, dass der Express Server mit der Last sehr gut mitkommt und im Benchmark Test erst ab ~100 parallel arbeitenden Clients von der Vollversion eingeholt wird, vorausgesetzt man hat nur eine Instanz laufen. Also sollten hier Zweifel anliegen, weit gefehlt! Die Vollversion hat in meinen Tests übrigens überhaupt keinen Geschwindigkeitsvorteil gehabt.
Ich habe hier aufgrund von Kosten-Nutzen Faktor auf eine In-House Lösung gesetzt mit einem relativ günstigen kleinen Server mit SSDs die im Raid 1 laufen plus Dauerlaufplatte als Zwischenspeicher für Sicherungen sowie eine externe Platte als zusätzliches Sicherungsmedium. Dann das ganze nochmal auf Cloudspeicher synchronisiert. Man kann nie genug Backups haben!
Einen Server einmalig für rund 1500€ anzuschaffen ist auf Dauer gesehen einfach günstiger als einen für, in dieser Austattung, rund 100€ zu mieten. Dabei rechne ich schon eine neue Festplatte pro Jahr ein. Das Teure an der Lösung ist schlicht die Windows Server Lizenz.
Bei der Evaluierung der Angebote ist bei vielen SQL Anbietern aufgefallen, dass auch hier mehrere dutzend Instanzen auf dem selben Stück Metall laufen und daher kein Vorteil gegenüber der Hosting Variante von JTL selbst besteht. Und auch hier wieder: die Preisgestaltung ist wutzig!
Übersicht:
1 x Serversystem:
- 4 Kerne, 8 CPUs (2 werden maximal von SQL Express genutzt in Version 2014)
- 16GB Ram (because why not? SQL Express Nutzt hier maximal 1GB)
- 2 x SSD (RAID 1) SSDs eignen sich hervorragend für Datenbanksysteme und gerade im Fall von SQL Express wo maximal 1GB im RAM gehalten wird, treten sehr viel Lese- und Schreibvorgänge auf dem Datenträger auf.
- 1 x HDD (Zwischenspeicher für DB Backups)
- 1 x Externes Sicherungsmedium (Archivierung)
1 x Windows Server 2012 Standard, kann aber auch irgend eine Windows Version sein ab W7
1 x SQL Express 2014 mit Reporting Services
-> Ports des SQL Servers und Instanz auf einen selbst definierten Port gelegt (SEHR wichtig für root Server die mit dem blanken Hintern im Internet hängen!)
--> Alternativ: mit NAT den eigentlichen SQL Port maskieren.
-> Datenbank kopiert und eingespielt.
-> ODBC Verbindungen umkonfiguriert
Zeitaufwand Serverinstallation bis Einrichtung sämtlicher Kassen: ~ 3 Stunden
Die Verbindung der Datenbank sieht dann meist so aus: <serveradresse>\<instanzname default "SQLEXPRESS">,<selbst definierter port>
Das Ganze läuft nun super flüssig mit insgesamt 6 Kassen, davon sind 2 im selben Haus wie der Server. Auch die Verwendung der
Wawi ist nun ein Traum.
Weil ich mich schon so derbe über diesen Mist aufregen musste bin ich mehr als bereit hier auch ins Detail zu gehen und bei Fragen zu helfen.