Fehlerursache bei Datumsverlust
hallo zusammen,
ich habe in einem Kunden-Intranet mehrere XP -Rechner. Auf diesen läuft unsere Kassensoftware. Nun kommt es bei genau 1 Maschine (von 8, die aber woanders stehen ) ab und zu vor, dass das Bondatum, welches aus dem Rechnerdatum generiert wird auf 0 sprich 30.12.1899 gesetzt ist. Einen Bon später ist alles wieder in Ordnung. Meine Recherchen haben ergeben, dass Spannungsspitzen von z.B. Kältemaschinen( beim Ein-Ausschalten derselben) diese kurzfristigen Datumsverluste bewirken können sollen. Kann hier jemand so was bestätigen und vieleicht technisch erklären? Der betroffene Kunde kann nämlich nicht glauben, dass seine Kompressoren die Fehlerursache sein können. Danke Gruss KHH |
AW: Fehlerursache bei Datumsverlust
Ich würde dazu neigen mich Deinem Kunden anzuschließen, gegf. eine nicht initialisierte Variable?
|
AW: Fehlerursache bei Datumsverlust
Kommt drauf an, wie die Signalwege abgeschrimt sind und wie auf Fehler reagiert wird.
Aber schon sehr eigenartig, daß es dann immer nur einen Wert betrifft und nicht auch Andere. :gruebel: Kommt auch noch darauf an, wie/ob auf Fehler reagiert wird. z.B. kann das Datum ( TDateTime? ) nicht gelesen werden, könnte man einen Fehler werfen, die Daten erneut anfragen oder einfach einen Standardwert (0) verwenden. Wenn es an Spannungsspitzen liegt, dann - stärker geschrimte Netzwerkleitungen verwenden - Strom- und Datenleitungen räumlich weit genug voneinander getrennt verlegen - Entstörfilter verbauen, welche die Spannungsspitzen eliminieren |
AW: Fehlerursache bei Datumsverlust
Du hast nicht zufällig eine USv zur Hand?
Damit könntest Du den Rechner vom Netz abkoppeln, und dem Kunden durch das Ausbleiben des Fehlers davon überzeugen, daß sein Stromnetz "verseucht" ist. Gruß K-H |
AW: Fehlerursache bei Datumsverlust
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Zitat:
Mir geht ja auch darum ob solche äusserlichen Einwirkungen tatsächlich diese Auswirkungen haben können, oder ob ich da völlig an der falschen Stelle suche. |
AW: Fehlerursache bei Datumsverlust
Zitat:
Dies würde erklären, warum nicht andere Variablen betroffen sind. |
AW: Fehlerursache bei Datumsverlust
Zitat:
Störungen in den Versorgungsleitungen manifestieren sich garantiert nicht ausschließlich in einem auf 0 gesetzten Datumswert eines Delphi-Programms. Zitat:
|
AW: Fehlerursache bei Datumsverlust
Zitat:
Wenn eine Variable schuld ist, warum dann nur auf dieser einen Maschine an diesem Standort? Auf den anderen Rechnern läuft doch die gleiche Software. Vieleicht auch ein Hardwarefehler? Oder doch ein Wunder ? ;-) |
AW: Fehlerursache bei Datumsverlust
Dann tausch doch einfach mal den betroffenen Rechner aus. Dann zeigt sich ja, ob das Problem immobil ist.
|
AW: Fehlerursache bei Datumsverlust
Mein Ansatz wäre folgender:
Die Netzstörungen erzeugen in der Tat irgendeinen Datenmüll. Darauf reagiert das Programm mit einer Excpetion die aber abgefangen ist und in die Datumsvariable die den Bon speisst eine 0.0 schreibt. Ich würde also nach except-Blocks suchen in denen, direkt oder indirekt, diese Datumsvariable vorkommt. PMM |
AW: Fehlerursache bei Datumsverlust
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Ich finde auch, dass es mit sehr hoher Wahrscheinlichkeit ein Softwarefehler ist. Denn wie wahrscheinlich ist es denn, dass es immer nur die Datumsabfrage und echt nichts anderes betreffen sollte? Da glaube ich vorher an noch sehr viel andere Dinge... Alleine weile Protokolle und Hardware auf Störungen/Fehler reagieren können.
Wie generierst du denn das Datum? Und wie oft tritt denn das Problem auf? |
AW: Fehlerursache bei Datumsverlust
ich schreibe das Datum mit :
kopf.LIEFERDATUM:= now; in die Datenbank und verwende dann das dort gespeicherte Datum. Habe jetzt gerade mal die DB durchforstet. in 20.000 Sätzen kommt der Fehler genau 9 mal vor. Und tatsächlich nur die Datumsvariable ist betroffen, da steht 0 in der DB :-( alle andern Werte stehen richtig in der DB |
AW: Fehlerursache bei Datumsverlust
Was ists für eine DB? Wie greifst du darauf zu? Erzähl einfach mal ein bisschen mehr drum herum. Und sonst sind keinerlei Daten "defekt"?
PS: Bau doch mal einen Log ein... Du schreibst ja den Wert von Now in die DB und holst dir dann wieder den Datumswert. Da kann ja zwischendrin sehr viel schief laufen. Mache danach einfach mal eine Prüfung i.S.v.:
Delphi-Quellcode:
Ich denke, die Idee ist klar?!
var
CurrentTimestamp : TDateTime; begin // ... CurrentTimestamp := Now(); kopf.LIEFERDATUM:= CurrentTimestamp; // Schreibe Datensatz in DB // Hole Datum aus DB if (Math.Abs(kopf. LIEFERDATUM - CurrentTimestamp) > 1) Then begin Log('Es lief ziemlich was schief'); end; end; |
AW: Fehlerursache bei Datumsverlust
Wenn du schon mit einer Datenbank arbeitest, warum läßt Du nicht von ihr das Datum generieren?
(Im allg. denken DBs auch an Zeitzonen, Sommemer und Winterzeit usw.) Wenn Du ein Problem mit einem Datum hast, und gleichzeitig ein Problem mit der Datenübernahme/gabe, Wunder gibt es nicht, aber da scheint doch irgendwo gewaltig der Wurm drin zu sein. Gruß K-H |
AW: Fehlerursache bei Datumsverlust
Da fällt mir auch ein: prüfe mal die Versionen der Treiber, über welche du auf die DB zugreifst. Kann es sein, dass diese eine Maschine evtl. ein andere Version nutzt?
|
AW: Fehlerursache bei Datumsverlust
Zitat:
ja, das werd ich wohl mal einbauen, ich danke euch |
AW: Fehlerursache bei Datumsverlust
Zitat:
wobeii ich mich immer noch daran festbeisse, dass der Fehler nur auf 1 von 8 Maschinen auftritt. |
AW: Fehlerursache bei Datumsverlust
Wenn 1/8 der Installation so einen Fehler produziert, dann würde ich an 3 Stellen ansetzen.
1. Die USV - aber bitte eine Online Meine/Kunden- Erfahrungen mit/ohne USV: - 1. Server mit 8 Platten im RAID, kompletter Blattschuss - 2. Server mit 7 Platten im RAID zickte immer wieder rum Online-USV -> kein Zicken und Murren mehr (seit ca. 3 Jahren) - Kassensystem in einer Filiale mit seltsamen Ausfallerscheinungen, aber der Kunde wollte auch nicht glauben, dass es am Strom liegt (aber bei 1 von 80 ...) Mein Vorschlag, er bekommt die USV erstmal für 6 Monate so hingestellt, wenn dann kein Fehler mehr auftaucht, dann bezahlt er die komplett. Somit ist er jetzt stolzer Besitzer einer USV - klar hat er die bezahlt ;) Das das Datum plötzlivh wieder korrekt ist finde ich nicht ganz so verwunderlich, denn schließlich gibt es ja Zeitdienste auf dem Rechner, die die Uhrzeit auf dem Rechner setzen können. Allerdings sollte dann ein Eintrag im EventLog vorhanden sein. 2. Rechner prüfen -> EventLog 3. Software prüfen, spezielle Debug-Version, lieber langsam und richtig und den Fehler finden |
AW: Fehlerursache bei Datumsverlust
Versuch:
Windows.GetSystemTime //Retrieves the current system date and time in UTC format. Diese Zeit speichern in einer globalen Variablen. Plausibilitätsprüfung: Eine nachfolgende Zeitabfrage darf nicht kleiner sein als die Variable. http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx . Ausserdem: All Microsoft Windows versions since Windows 2000 include the Windows Time Service,[5] which has the ability to sync the computer clock to an NTP server. http://en.wikipedia.org/wiki/Network_Time_Protocol |
AW: Fehlerursache bei Datumsverlust
Ich kann den letzten beiden Posts nur zustimmen. Anhand der Angaben zur Anzahl der Rechnungen / Bons, scheint es eher ein Krautladen zu sein. Da kann man wirklich ohne sich weit aus dem Fenster zu lehnen die Vermutung haben, dass die Verkabelung teilweise etwas hand made ist, bzw. schlicht einfach auch die Leistung einzelner Vrkabelungen an der Absicherungsgrenze schrammen. Wenn dann die Klimaanlage anspringt..
Ob das dann zu den geschilderten Effekten führt ist erstmal pure Spekulation. Und das ist der entscheidende Punkt. Ich würde 2 Dinge an meiner Anwendung dringend ändern. Die Plausi-prüfung ala hathor und Logging! Nur so kannst Du systematisch Ursachen ausschließen und der Sache auf den Grund gehen. |
AW: Fehlerursache bei Datumsverlust
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Es ist ja nicht so, dass das System Millionen Bons pro Tag generiert. Ich finde es auch unwahrscheinlich, aber wenn alle 5 Minuten ein Bon rausgeht, kann doch dazwischen irgendwann korrigiert werden.
|
AW: Fehlerursache bei Datumsverlust
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Hallo,
zur Eingrenzung würde ich auch Debug-Code einfügen und in ein Logfile schreiben. An der Stelle, wo der Bon mit 0-Datum rauskommt und dann immer weiter nach vorne hangeln. Das ganze jeweils mit Zeitstempeln versehen und zwar alle Formate, die Du im Programm verwendest. Eine Alternative wäre, ein Programm zu schreiben, dass sich in Int $1A einhängt und jede neue Sekunde zunächst in den Speicher schreibt und dann in ein Logfile ausgibt. Das ganze als CSV so strutkurieren, dass man es gut in EXCEL importieren kann. Vielleicht ergibt sich ja wirklich eine Unregelmäßigkeit der Uhr. Die könnte z.B. durch andere Programme verursacht sein, die auch am Timer-Interrupt "rumbiegen". |
AW: Fehlerursache bei Datumsverlust
Sehr verwunderlich finde ich übrigens, dass hier niemand auf den einzig vernünftigen Vorschlag eingeht:
Zitat:
Zitat:
|
AW: Fehlerursache bei Datumsverlust
Zitat:
Wenn beide Werte dann auf 0 stehen (bzw. nicht die korrekte Uhrzeit widerspiegeln) ist es ein Problem ausserhalb der eigenen Software - die Verantwortlichkeit ist man aber trotzdem nicht los ;) |
AW: Fehlerursache bei Datumsverlust
Zitat:
Nicht jeder Kassiervorgang endet mit Bondruck, weil viele Kunden auf den Bon verzichten. |
AW: Fehlerursache bei Datumsverlust
Zitat:
Ist in der Praxis einfach so, dass verschiedene Filialen verschiedene Artikelbestände haben. Und um unnötigen Netzverkehr zu vermeiden wurde jeder Kasse einen eigenen DB gespendet ;-) |
AW: Fehlerursache bei Datumsverlust
q.e.d.
|
AW: Fehlerursache bei Datumsverlust
Datenreplikation bzw. die spezifische lokale Architektur müsste einen aber nicht davon abhalten, den fraglichen Rechner mit einem anderen zu tauschen, evtl. reicht ein Festplattentausch oder eben ein Backup/Restore von den 2 Datenbanken der getauschten Systeme.
|
AW: Fehlerursache bei Datumsverlust
Zitat:
bedeutet halt nur ne zusätzliche Nachtschicht ;-) |
AW: Fehlerursache bei Datumsverlust
Das wäre es mir wert, wenn ich daduch Spekulation durch Fakten ersätzen könnte.
:) |
AW: Fehlerursache bei Datumsverlust
Äh... nochmal so zur Wiederholung: Einige von euch glauben, dass durch Störeinflüsse im Stromnetz das Datum eines Computers gelegentlich verloren geht und anschließend durch NTP direkt wieder gespeichert wird? Das ist doch nicht euer Ernst? :wall:
Liebe Grüße, Valentin |
AW: Fehlerursache bei Datumsverlust
seeing is believing
I've seen such things gruß K-H |
AW: Fehlerursache bei Datumsverlust
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz