Problem beim Indizieren (NTX) [ERLEDIGT]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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
Gruß aus Albstadt

Günter Früholz
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag von Tom »

Hallo, Günter.

Da funkt ein Virenscanner dazwischen. Einfach mal abschalten oder das Verzeichnis fürs Laufzeitscannen aussparen, dann verschwindet dieser Fehler.
Herzlich,
Tom
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Re: Problem beim Indizieren (NTX)

Beitrag 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
Gruß aus Albstadt

Günter Früholz
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag 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.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag 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.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag von brandelh »

Und wenn der Virenscanner gerade die Datei scannt, die du löschen willst, könnte das auch stören 8)
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag 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.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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
Gruß aus Albstadt

Günter Früholz
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX)

Beitrag 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:
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Problem beim Indizieren (NTX)

Beitrag 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.
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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:
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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
gruss by OHR
Jimmy
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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.
Herzlich,
Tom
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Problem beim Indizieren (NTX) [ERLEDIGT]

Beitrag 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
Antworten