Seite 1 von 1

Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Do, 25. Feb 2010 17:02
von gf210957
Hallo an alle,

Ich habe seit einigen Tagen ein Problem bei einem Kunden mit dem indizieren von DBF-Dateien mit NTX . Um möglichst schnell Indexe aktualisieren zu können, habe ich vor vielen Jahren ein kleines Tool geschrieben, das anhand einer Master Datei alle Indexe meines Programms neu erstellt. Dieses Tool hat seit vielen Jahren auch wirklich einwandfrei seinen Dienst verrichtet.
Doch nun treten bei einem Kunden plötzlich Probleme auf (XP Home). Das Programm führt nur noch einige Indizierungen aus und beendet sich mit dem Fehler: " Datei kann nicht geöffnet werden.". Auch habe ich den Eindruck, dass innerhalb des Programms die Indexdateien in bei der neuen Anlage von Datensätzen nicht mehr verändert werden. Es treten jedoch keine Fehlermeldungen auf.
Leider kann ich den Fehler nicht nachvollziehen, da auf allen meinen Rechnern alles wunderbar funktioniert.
Da es sich bei dem System um ein Kassen System handelt, und der Kunde eher einer der schwierigeren Art ist, muss ich möglichst schnell eine Lösung finden.

Hat von euch irgend jemand schon einmal ein solches Phänomen gehabt, und kann mir vielleicht sagen, was man verändern, oder wo man suchen muss. Den Schritt, die Platte low Level zu formatieren, möchte ich wirklich nur gehen, wenn es gar keine andere Lösung gibt.

Ergänzend möchte ich noch mitteilen, dass das Problem auch bei alten Programmständen auf diesem Rechner auftritt, die bisher einwandfrei funktioniert haben.

Ich wäre für jede Hilfe sehr dankbar.

Mit freundlichen Grüßen aus Albstadt

Günter Früholz

Re: Problem beim Indizieren (NTX)

Verfasst: Do, 25. Feb 2010 17:12
von Tom
Hallo, Günter.

Da funkt ein Virenscanner dazwischen. Einfach mal abschalten oder das Verzeichnis fürs Laufzeitscannen aussparen, dann verschwindet dieser Fehler.

Re: Problem beim Indizieren (NTX)

Verfasst: Do, 25. Feb 2010 17:43
von gf210957
Hallo Tom,

danke für Deine schnelle Antwort.

Ich werde das Ganze morgen gleich einmal checken.

mit freundlichen Grüßen aus Albstadt.

Günter Früholz

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 9:04
von brandelh
gf210957 hat geschrieben:Den Schritt, die Platte low Level zu formatieren, möchte ich wirklich nur gehen, wenn es gar keine andere Lösung gibt.
Hallo,

davon würde ich auf jeden Fall die Finger lassen !

Wenn die Festplatte einen hardware defekt hat, dann ersetzen.
Wenn es die Software ist, neu installieren, aber normal formatieren reicht immer.

Wenn nur dein Programm diese Fehler hat, ist ein hardware Fehler aber eher unwahrscheinlich.
Windows als solches muss so viele DLL und EXE laden bis es läuft, dass die HD schon da streiken würde.

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 9:15
von Tom
Formatieren ist Quatsch! Ich wette jederzeit gerne darauf, dass hier ein Virenscanner sein Unwesen treibt. Wir hatten diesen Fehler schon häufiger bei Kunden, und immer war es ein Virenscanner. Beim Indexieren kaskadieren die Wartezeiten (weil sich der Scanner in die Dateioperationen klemmt), und irgendwann sagt das Betriebssystem dann einfach: Datei kann nicht geöffnet werden.

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 9:29
von brandelh
Und wenn der Virenscanner gerade die Datei scannt, die du löschen willst, könnte das auch stören 8)

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 9:48
von Rolf Ramacher
Hi,

wenn es in einem Netzwerk läuft, könnte es auch die Netzwerkkarte bzw. das Netzwerkkabel sein. Habe schon oft genug erlebt,
das eine fehlerhafte Netzwerkkarte seltsame Dinge tut.

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Fr, 26. Feb 2010 15:33
von gf210957
Hallo an Alle,

Das Problem hat sich erledigt.
Es war tatsächlich der Virenscanner. Der Sohn des Kunden hat ohne mich zu informieren einen neuen Virenscanner installiert, und den so eingestellt, dass keine Maus mehr raus oder rein konnte.
Und dann lässt er mich tagelang probieren, und die Software umschreiben.

Nochmals vielen Dank für Eure rasche Hilfe

Mit freundlichen Grüßen aus Albstadt

Günter Früholz

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 15:44
von Tom
Hallo, Günter.

Wenigstens ist die Lösung gefunden.

"Datei kann nicht geöffnet werden" beim Erzeugen einer Indexdatei ist nach meiner Erfahrung immer auf Virenscanner zurückzuführen. Ein ähnliches Verhalten tritt sonst - auch beim Löschen von Dateien oder anderen Operationen - nicht auf, aber offenbar wird eine Indexdatei beim Erzeugen mehrfach geöffnet, durchgeschrieben, geschlossen usw., so dass es einen kaskadierenden Effekt gibt, bis der Scanner dann nicht mehr rechtzeitig auf die Betriebssystemanfrage reagieren kann.

Man sollte Kunden grundsätzlich empfehlen - am besten in der Installationsanleitung, besser noch gleich im Vertrag -, dass Virenscanner immer so einzurichten sind, dass die Datenbankpfade der Applikation ausgeblendet werden. Leider habe ich noch keinen Weg gefunden, um aus der Applikation heraus zu ermitteln, ob ein Virenscanner aktiv ist. Lokal bekommt man das sogar noch hin, aber wenn das Ding auf dem Server läuft (und die Anwendung nicht, sich ihre Daten aber dort befinden), wird's schwierig.

@Rolf: Netzwerkkarten machen üble Sachen, zum Beispiel einschlafen, weil "Energiesparoptionen" gesetzt sind. An einem Fehler wie den hier genannten sind sie aber so gut wie nie schuld. Es schadet aber nicht, den Kunden oder seine Techniker nach solchen Ursachen suchen zu lassen, weil man dadurch Zeit gewinnt. :badgrin:

Re: Problem beim Indizieren (NTX)

Verfasst: Fr, 26. Feb 2010 15:52
von AUGE_OHR
Tom hat geschrieben:@Rolf: Netzwerkkarten machen üble Sachen, zum Beispiel einschlafen, weil "Energiesparoptionen" gesetzt sind.
Win7 Rechner sind so "voreingestellt", also sollte man das immer überprüfen ... wobei mir einfällt das man das wohl per WMI machen könnte ...

ich werde es mal testen und dann den Code hier rein stellen wenn es funktioniert.

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Fr, 26. Feb 2010 16:27
von Tom
@Jimmy: Das mit SL1 eingeführte "ApplicationObject" sollte ja irgendwie dabei helfen, damit verbundenen Problemen (Netzwerkkarte schläft ein, Server kappt die Verbindung aufgrund von Timeout-Einstellungen) Herr zu werden, aber die große Frage in diesem Zusammenhang lautet (immer noch): WIE? :lol:

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Fr, 26. Feb 2010 17:08
von AUGE_OHR
Tom hat geschrieben:@Jimmy: Das mit SL1 eingeführte "ApplicationObject" sollte ja irgendwie dabei helfen, damit verbundenen Problemen (Netzwerkkarte schläft ein, Server kappt die Verbindung aufgrund von Timeout-Einstellungen) Herr zu werden, aber die große Frage in diesem Zusammenhang lautet (immer noch): WIE? :lol:
jetzt wo du es sagst denke ich das ich auch mal sowas gehört/gelesen hätte ... "wo" war das noch ...

ich habe nun mal in WMI nachgeschaut. Dort gibt es zwar eine Property die sich so "anhörst" aber ich bekomme nur NIL.
Ich habe aber was anderes gefunden was ich gleich in die Wissenbasis stellen

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Mi, 03. Mär 2010 21:03
von Ewald
Da will ich schnell noch meinen Senf beisteuern.
Ich habe auch eine Art Master-Datenbank, in der ich für alle DBF's eingetragen habe was wie zu indizieren ist.

Die Felder sind:
Bank C 8
Feld C 30
Datei C 8

Da steht dann z.B. drin
Bank = "LAGERBEW"
Feld = "NUMMER"
DATEI = "LBEWNUMM"

In einer Schleife habe ich dann diese gesamte Bank bei Bedarf zum Indizieren aller meiner Datenbanken abgearbeitet:
Satzweise in Variablen eingelesen und dann:

Code: Alles auswählen

use &vbank excl
index on &vfeld to &vdatei
Das ging unter Clipper auch jahrelang gut. Dann kamen unter XBASE plötzlich auch die ersten Fehlermeldungen (kann Datei nicht öffnen).
Im ersten Moment für mich absolut nicht nachvollziehbar warum bei manchen DBF's und bei manchen nicht.
Ich habe gesucht bis mir die Augen getränt haben :(
Das Problem waren schließlich die Datenbanken, deren Name kürzer 8 Stellen waren. Die Lösung ist

Code: Alles auswählen

vbank=alltrim(vbank)
use &vbank excl
index on &vfeld to &vdatei

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Mi, 03. Mär 2010 21:14
von Tom
Hallo, Ewald.

Am Rande: Man muss keine Makros bemühen; Xbase++ lässt an solchen Stellen auch geklammerte Ausdrücke zu:

Code: Alles auswählen

cDbfName := "BANKEN"
cNtxName := "BANKEN"
cIndexKey := "NUMMER"
USE (cDbfName) 
INDEX ON &cIndexKey TO (cNtxName)
Noch eleganter ist es so:

Code: Alles auswählen

USE (cDbfName)
OrdCreate(cNtxName,,cIndexKey,,,.T.)
Diese Code ist leichter zu debuggen und dürfte auch - wenn er häufig wiederholt wird - deutlich performanter sein.

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Verfasst: Mi, 03. Mär 2010 21:31
von Ewald
Hi Tom,
heute mache ich manches natürlich besser bzw. anders ;-)
Mein Hinweis galt mehr dem trim().
Es war damals etwas verblüffend/verwirrend,verunsichernd, wenn plötzlich von ca. 50 Datenbanken 35 indiziert werden und 15 nicht.

Heute habe ich nur noch so einfache Probleme wie:
Wie bringe ich einen 12 Jahre alten Röntgenscanner mit ISA-Schnittstelle/Karte auf einem WIN7 Rechner zum Laufen, nachdem es mir gelungen ist,
einen PC mit S775 CPU und einem ISA-Slot !!! zu bauen.
Manchmal denke ich , ich werde zu alt für diesen gesamten Schei....

Gruß
Ewald