SQL Server Dateninkonsistenzen wenn Client hart beendet wird

29. Juli 2009 09:23

Hallo,

ich benutze anstatt eines Application Servers einen Navision-Client, der eine Schnittstelle (Single Instance Codeunit) ausführt, die Daten tagsüber in periodischen Abständen aus Textdateien einliest. Das ganze läuft unter Navision 5.0, SQL-Server.

Jetzt starte ich jede Nacht diesen Client neu, indem der Client automatisch beendet und danach neu gestartet wird. Dafür nutze ich ein Tool ähnlich taskkill.exe, das den Prozess (finsql.exe) direkt beendet.

Meine Frage ist, wenn ich den Client so hart abschieße, kann es dann zu Dateninkonsistenzen auf dem SQL-Server kommen, wenn beispielsweise gerade in dem Moment wenn der Client beendet wird, er etwas in die SQL-Datenbank schreibt?

Ich würde mich freuen, wenn mir dazu jemand etwas sagen könnte.

Viele Grüße

Re: SQL Server Dateninkonsistenzen wenn Client hart beendet wird

29. Juli 2009 09:31

Hallo fraiser,

nach menschlichen Ermessen sollte nichts passieren, denn alle Aktionen die der Client durchführt, sind durch Transkaktionen gekapselt, die im Falle des Absturzes zurückgedreht werden.

Aber natürlich ist das nicht die feine englische Art den Client abzuschießen, denn die ZUP-Datei könnte schon mal dran glauben müssen. Das wiederum könnte dazu führen, das dein Client sich nicht mehr starten lässt.

Eine Makro-Lösung à la AutoIT (schau mal hier im Forum) sollte besser dafür sorgen, das der Client sauber beendet wird.

Gruß, Fiddi

Re: SQL Server Dateninkonsistenzen wenn Client hart beendet wird

29. Juli 2009 10:22

Moin Fiddi,

vielen Dank für Deine Info. Ich werde mir das Tool einmal genauer ansehen. Das mit der ZUP-Datei wäre für mich gar nicht so tragisch ... meine bedenken wären höchstens, dass diese Vorgehensweise im Dauerbetrieb irgendwann einmal die SQL-Datenbank zerschießt.
Ich habe noch dunkle in Erinnerung, dass es bei der Native-Datenbank damit mal Probleme gab, oder sehe ich das falsch?

Viele Grüße,

Fraiser

Re: SQL Server Dateninkonsistenzen wenn Client hart beendet wird

29. Juli 2009 11:25

eigentlich auch hier nicht, aber wenn das eine lokale Datenbank ist, dann wird er beim Neustart die Liste der freien Blöcke neu erstellen.

Gruß, Fiddi