Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

Hi,

folgendes Phänomen habe ich aktuell auf min. 2 unterschiedlichen XP Rechnern:

Es wird ein WIN32 (Xbase++ 1.9 SL1) Programm gestartet und ein Datensatz in einer DBF erzeugt. Dabei wird mit der Funktion Time() auch die aktuelle Uhrzeit in den Datensatz gespeichert.
Bis hier her passt alles. Die gespeicherte Uhrzeit entspricht exakt der Systemzeit des Rechners. So soll es auch sein. (Als Bsp. 10:26)

Anschließend wird ein altes DOS (Clipper 5.2) Programm im Fullscreenmodus gestartet. Der zuvor gespeicherte Datensatz, wird bearbeitet und die Bearbeitungsuhrzeit, ebenfalls mit der Time() Funktion gespeichert. Auch diese Uhrzeit, sollte mit der Systemzeit identisch sein. Ist sie aber nicht. Diese liegt plötzlich um ca. 0,5h daneben. In meinem Fall statt z.B. aktuelle 10:33 liefert die Time() Funktion im DOS Programm 9:56.

Systemuhrzeit + Zeit im BIOS habe ich geprüft, beides ist OK.
Der Zeitunterschied auf den beiden Rechnern ist unterschiedlich.
Nach Neustart des PCs ist es i.d.R in Ordnung, bis es dann irgendwann plötzlich auftaucht.
Ich habe keine Ahnung was es sein kann und wo ich überhaupt noch suchen sollte.
Es ist echt sehr merkwürdig, wenn die nachfolgende Bearbeitung eines Datensatzes deutlich früher passierte als der Datensatz angelegt wurde :evil:
Woher holt sich das DOS Programm die falsche Uhrzeit her?

Hoffe ein paar Ideen & Tipps von Euch Experten!
Gruß,
Magic
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von brandelh »

eigentlich sollte sich auch ein DOS Programm die Uhrzeit vom Betriebssystem holen, dass PC-Uhren sehr ungenau gehen ist normal,
aber ich kann mir nicht vorstellen, dass die CMD BOX ihre eigene Zeit hat.

kannst du auf so einem Rechner eine CMD Box öffnen und die Zeit per endlosschleife anzeigen lassen ob diese irgendwann falsch geht ?
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

brandelh hat geschrieben:kannst du auf so einem Rechner eine CMD Box öffnen und die Zeit per endlosschleife anzeigen lassen ob diese irgendwann falsch geht ?
Das scheint alles OK zu sein. Erschwerend kommt hinzu, dass es an manchen Tagen alles korrekt ist.

Sehr merkwürdig. Auf meinem Rechner ist alles bestens.
Werde mich mal hinter den Benutzer hinstellen und genau beobachten wie die es machen. Manchmal gibt es eben Sachen die muss man sehen, sonst glaubt man es nicht. Ich werde berichten ...
Gruß,
Magic
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Tom »

Zuweilen verhält sich Windows etwas eigenartig, wenn es um die Sommerzeit geht. Das kann man beobachten, wenn man mit mobilen Laufwerken arbeitet und am Tag nach der Umstellung nur Dateien sichern/zurücksichern will, die sich geändert haben - plötzlich haben sich nämlich u.U. alle geändert. Allerdings hätte das m.E. keine Zeitdifferenz von 30 Minuten, sondern eher in Stundenintervallen zur Folge. Huberts Tipp folgen - einfach mal die Zeit anzeigen lassen.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von brandelh »

Du könntest auch eine automatisierte Testreihe auf so einem Rechner starten:

Ein einfaches PRG, das alle 10 Minuten in eine Textdatei Datum und Uhrzeit ausgibt.
1. compiliert mit Clipper => DOS
2. compiliert mit Xbase++ => Win32 ...

Auf Wunsch könnte ich auch noch eine DOS und Win32 Version mit PowerBasic compilieren.

So könntest du über einen längeren Zeitraum die Zeiten gut vergleichen (die EXE müsste am Anfang gleichzeitig schreiben).
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

OK.

Danke für die Ideen.

Ich werde jetzt so vorgehen:
- Schaue mir genau an was die Benutzer machen. Vielleicht kann man da schon etwas erkennen.
- wenn das nichts bringt, lasse ich mal einen (zusätzlichen) Rechner bei mir laufen und werde das genauso testen wie die Benutzer es tun
- werde ich auch danach nicht schlauer, lasse ich zwei Programme, wie von Hubert, vorgeschlagen die Uhrzeit in Intervallen irgendwohin schreiben

Wobei mir noch nicht ganz klar ist, was ich mit den Programmen feststellen kann, außer, dass es Abweichungen gibt.
Denn das ist mir jetzt schon bekannt. Evtl. könnte ich damit dies auch ausschließen ...

Ich werde es sehen.
Gruß,
Magic
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Tom »

Ist denkbar, dass irgendwo im Programm die Zeit gesetzt wird? Auch das kann man ja machen.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von brandelh »

Die LOG Funktion per Programm, könnte zeigen, ob ...

1. Win32 UND DOS falsche Zeiten bringen (dann sollte es an Hardware oder Betriebssystem liegen)
2. ALLE DOS Programme die gleiche falsche Zeit bringen. Wenn es alle gleich falsch machen, liegt es wohl an der DOS Box von Windows.
3. Es könnte aber auch sein, dass ein Compiler seine Programme nur beim Start die Systemzeit von OS abfragen lässt und danach eigene TICKS zählt (warum auch immer) ... irgend sowas habe ich mal gelesen aber ich kann mich nicht mehr erinnern.
4. Wenn die Testprogramme aber keine Fehler finden, das betreffende Programm aber die Zeit falsch behandelt, muss es an dem Programm liegen. Im anderen Fall suchst du im Programm und das OS ist schuld :wink:
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

Hi,

ich kann das Problem rekonstruieren, frage mich aber wie ich es bloß beheben kann :?:

Als Ergänzung noch folgendes:
Die Benutzer starten das DOS Programm i.d.R. morgens und lassen es dann wenn sie es gerade nicht brauchen mit ALT+TAB (ist ja eine FullScreen Anwendung) in den Hintergrund verschwinden. Holen es dann in den Vordergrund wenn es benötigt wird.
Die Time() Funktion wird immer beim speichern des Datensatzes aufgerufen, d.h. die Uhrzeit wird nicht irgendwo im Programm einmalig gesetzt, sonder immer bei Bedarf geholt. Und die ist eben falsch, sobald das Programm im Hintergrund war.

Das DOS Programm selbst wird vom Netzlaufwerk gestartet. Darauf haben die Benutzer einen Link (.PIF) auf Ihrem Rechner. In den erweiterten Eigenschaften der Verknöpfung habe ich z.B. folge Einstellung gefunden „Kompatible Timehardwareemulation“. Dies habe ich aktiviert, leider ohne den erhofften Erfolg.

Es scheint tatsächlich so, als würde das Programm – warum auch immer – eine eigene Zeitrechnung zu haben. Bloß, wie kann ich dagegen einwirken? Ich kann ja schlecht dem Benutzer raten, jedes Mal das Programm zu schließen um es dann wieder zu öffnen, statt es in den Hintergrund zu jagen [-X Denn solange es im Vordergrund läuft ist alles Takko.
Gruß,
Magic
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von brandelh »

Wenn es ein Clipper Programm ist, dann versuche es mit Xbase++ zu übersetzen !
Ansonsten, warum nicht schließen und neu starten ?
Dann könntest du aber auch z.B. DOSBOX nutzen um die Dos Programme zu starten, eventuell hat dieses das Problem nicht.

Übrigens, dass du im Programm mit time() immer die Zeit erneut abfragst, bedeutet nicht, dass die Runtime tatsächlich die Hardwareuhr oder Windows 32 bit fragt,
es könnte intern einfach die TICKS zählen und ein Programm im Hintergrund verliert halt welche ! Ich weiß auch nicht ob die DOSBOX selbst die Zeit verliert oder Clipper !
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

Magic hat geschrieben:Ich weiß auch nicht ob die DOSBOX selbst die Zeit verliert oder Clipper
Laut meinen Tests ist es Clipper.
Gruß,
Magic
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Herbert »

Clipper kennt Befehle die dauernd pollen. .z.B. INKEY(). Hier wird dauernd gelauscht ohne zu warten. Du siehst das auch in der Systembelastung. Dies kann einer billigen DOS-BOX verhelfen, dass selbst die Zeit stehen bleibt...
Nimm mal INKEY(0), falls dies vorkommt.
Hoffe, dass dies etwas in deine Richtung zeigt.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Lewi »

Oder folgende Möglichkeiten evaluieren:

1. Eine Temp-Datei erzeugen (ggf. auf dem Server) und die Create-Uhrzeit ermitteln
2. Über Seconds() die Uhrzeit umrechnen

Gruß, Olaf
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

Lewi hat geschrieben:1. Eine Temp-Datei erzeugen (ggf. auf dem Server) und die Create-Uhrzeit ermitteln 2. Über Seconds() die Uhrzeit umrechnen
Die Idee ist gut und noch das Einzige was übrigbleibt.
Komme ich direkt an das Erstellungs-/ Änderungsdatum einer Datei dran, außer mit Hilfe von ADir()/Directory()?
Gruß,
Magic
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Falsche Uhrzeit - Ein Phänomen, keine Erklärung

Beitrag von Magic »

Secound(), aufgerufen aus demselben DOS Programm, liefert unter denselben Bedingungen ebenfalls falsche Ergebnisse.

Was bleibt ist das Erzeugen eine Datei (auf’m Server). Das habe ich getan und nehme dann anschließend die F_TIME der Datei statt das Ergebnis von Time().
Das scheint zu funktionieren. Ich brauche es nicht Sekundengenau, deshalb passt es.
Gruß,
Magic
Antworten