Verfasst: Mi, 08. Mär 2006 11:22
Hallo,
ich prüfe nach jedem SEEK, ob die gefundenen Daten dem entsprechen, was ich erwartet habe (Name gleich etc.) Wenn hierbei ein Fehler auftritt, erfolgt eine Fehlermeldung, dass die Indexdateien neu aufgebaut werden müssen.
Ich schließe dann alle Dateien und versuche frech die Löschung der Indexdateien, sind diese weg ( ! file(xyz) ), melde ich, dass das Programm geschlossen werden muß, aber gleich darauf neu gestartet werden darf. Beim Neustart prüfe ich immer ob alle Indexdateien da sind, wenn einige fehlen wird alles neu erzeugt.
Falls noch andere User angemeldet sind, geht das mit dem Löschen natürlich schief, und ich setzte eine FLAG-Datei.
Jedes Programm erkennt anhand der FLAG am Programmstart bzw. beim Versuch neue Fenster zu öffnen, dass zuerst die Indexdateien gelöscht und neu aufgebaut werden müssen. Nur bei Erfolg geht das Programm weiter und löscht die FLAG Datei. Bei den aktiven Programmen wird an mehreren zentralen Abläufen nachgesehen ob eine FLAG-Datei existiert (einmal sogar einen eigenen Thread mit 60 Sekunden Abfrage).
Wenn diese erkannt wird, wird das Programm per Fehlermeldung beendet. Das Ganze war schon zu Clipper vorhanden, wenn auch einfacher, da damals weniger User aktiv waren.
Mit Xbase++ haben sich die Indexfehler insgesamt deutlich gebessert.
Es kommt selten vor, dass ein Programm Indexfehler erkennt, aber wenn, schalten sich alle Clients je nach Vorgabe ab.
Das funktioniert gut, bietet eine 100% Sicherheit und keinen Zeitverlust, da das Vergleichen des Suchbegriffes mit den gefundenen Daten nicht meßbar ist.
ich prüfe nach jedem SEEK, ob die gefundenen Daten dem entsprechen, was ich erwartet habe (Name gleich etc.) Wenn hierbei ein Fehler auftritt, erfolgt eine Fehlermeldung, dass die Indexdateien neu aufgebaut werden müssen.
Ich schließe dann alle Dateien und versuche frech die Löschung der Indexdateien, sind diese weg ( ! file(xyz) ), melde ich, dass das Programm geschlossen werden muß, aber gleich darauf neu gestartet werden darf. Beim Neustart prüfe ich immer ob alle Indexdateien da sind, wenn einige fehlen wird alles neu erzeugt.
Falls noch andere User angemeldet sind, geht das mit dem Löschen natürlich schief, und ich setzte eine FLAG-Datei.
Jedes Programm erkennt anhand der FLAG am Programmstart bzw. beim Versuch neue Fenster zu öffnen, dass zuerst die Indexdateien gelöscht und neu aufgebaut werden müssen. Nur bei Erfolg geht das Programm weiter und löscht die FLAG Datei. Bei den aktiven Programmen wird an mehreren zentralen Abläufen nachgesehen ob eine FLAG-Datei existiert (einmal sogar einen eigenen Thread mit 60 Sekunden Abfrage).
Wenn diese erkannt wird, wird das Programm per Fehlermeldung beendet. Das Ganze war schon zu Clipper vorhanden, wenn auch einfacher, da damals weniger User aktiv waren.
Mit Xbase++ haben sich die Indexfehler insgesamt deutlich gebessert.
Es kommt selten vor, dass ein Programm Indexfehler erkennt, aber wenn, schalten sich alle Clients je nach Vorgabe ab.
Das funktioniert gut, bietet eine 100% Sicherheit und keinen Zeitverlust, da das Vergleichen des Suchbegriffes mit den gefundenen Daten nicht meßbar ist.