Seite 2 von 2

Re: Fehler bei DbRUnLock()

Verfasst: Di, 04. Nov 2014 19:37
von Jan
Hallo Bernd,

da viele Dutzend Anwender mit dem Programm arbeiten, manche davon mir unbekannt da Demo-Tester - was würde wohl passieren wenn ich bei jedem Programmstart erstmal darauf hinweise, doch bitte die dbt, fpt, und cdx aus dem Virenscan rauszunehmen? Ich mag da garnicht dran denken.

Mir ist klar daß das Problem sehr wahrscheinlich ein Virenscanner ist. Aber es muß doch andere Wege geben. Wir reden hier immerhin von EDV-Unbedarften Anwendern, nicht über versierte Admins. Und der unbedarfte Anwender wird mich für bescheuert und unseriös halten wenn ich ihn aufforder, den Virenscanner zu deaktivieren. Der wird nicht verstehen, das es nur um bestimmte Dateitypen geht, und daß das vollkommen schadlos ist (aus Virenscanner-Sicht).

Jan

Re: Fehler bei DbRUnLock()

Verfasst: Mi, 05. Nov 2014 3:31
von AUGE_OHR
wenn es sich um ein Viren-Scanner Problem handeln sollte ist die Frage ob es die DBF Datei betrifft oder das EXE welches die DBF aufruft ...

wenn ich einen Dreizeiler in Xbase++ compiliere / linke und es nicht in einem "ausgenommenen Ordner" liegt dann meckern schon viele Viren-Scanner "aus Verdacht" ...
nun gibt es diesen Thread http://www.xbaseforum.de/viewtopic.php?f=21&t=5535, also mit Zertifikat.

Frage : muss man dann noch das "Daten"-Verzeichnis "ausnehmen" vom Viren-Scanner ?

Re: Fehler bei DbRUnLock()

Verfasst: Mi, 05. Nov 2014 9:51
von Tom
Frage : muss man dann noch das "Daten"-Verzeichnis "ausnehmen" vom Viren-Scanner ?
Ja, leider. Die meisten Scanner scheren sich leider nicht darum, wer Dateien zu öffnen versucht - sie klemmen beharrlich im entsprechenden Prozess und scannen, insofern Laufzeitprüfung aktiv ist, jede Datei, die nicht als Ausnahme definiert ist. Was man in den allermeisten Fällen durch die Zertifizierung verhindern kann, das sind Prozessüberwachungen (Kaspersky, McAffee u.a.) und andere Prüfungen der App selbst. Auch die Heuristiken versuchen dann in aller Regel nicht mehr, in der EXE oder in den DLLs Schadcode zu erraten (was mit Avira und Norton immer wieder Probleme verursacht). Am Scannen der Tabellen kommt man nur vorbei, indem Typen oder Verzeichnisse (besser) ausgespart sind - oder indem man einen Datenbankserver verwendet, also ADS oder ähnliche. Low-Level-Zugriffe und solche auf andere Dateien (INI, TXT, was weiß ich) finden dann natürlich trotzdem statt, wenn die Verzeichnisse nicht als Ausnahmen definiert sind.

Re: Fehler bei DbRUnLock()

Verfasst: Mi, 05. Nov 2014 18:35
von Bernd Reinhardt
Hallo

Was ich festgestellt habe bei Kaspersky war das diese Zusatzfunktionen (Proaktiver Schutz, Aktivitätskontrolle, Schwachstellenanalyse)
bei mir Probleme gemacht haben.
Der Scanner selber eigentlich nicht. Aus Performancegründen könnte man den Scan von dbf, ntx und dbt ausschalten.

Meist ging der Fehler bei dbunlock / index on in die Abfrage: Wiederholen Abbrechen.
Ich habe dann in der errorsys einen Zähler eingebaut und Retry bis zu 100 mal mit Wiederholen ausgeführt.
Dadurch ging die Fehlerhäufigkeit etwas zurück, war aber nicht weg. Manchmal war dann der Index nach
30 versuchen aufgebaut.

Ich habe keine andere Lösung gefunden als diese Funktionen abzuschalten.

mfg
Bernd

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 7:31
von Koverhage
Das wäre auch wohl nicht im Sinne des Erfinders, wenn Funktionen der Antivieren-Software
von anderen Programmen abgeschaltet werden können :)

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 8:39
von AUGE_OHR
Koverhage hat geschrieben:Das wäre auch wohl nicht im Sinne des Erfinders, wenn Funktionen der Antivieren-Software von anderen Programmen abgeschaltet werden können :)
wie war das noch mit dem USB-Stick Angriff der ein Keyboard simuliert ...

auch wenn der User es vielleicht komisch findet würde ich ihn bitten das Daten-Verzeichnis aus dem Viren-Scanner "auszunehmen" ... wenn er denn einen Viren-Scanner in Einsatz hat.

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 10:42
von Tom
auch wenn der User es vielleicht komisch findet würde ich ihn bitten das Daten-Verzeichnis aus dem Viren-Scanner "auszunehmen" ... wenn er denn einen Viren-Scanner in Einsatz hat.
Nun, aber man kann es ihm erklären:

1. Virenscanner überwachen, wenn die "dümmsten" Einstellungen gewählt sind, alle Dateizugriffe, scannen also jede Datei, die geöffnet wird. Sie scheren sich auch nicht darum, ob dieselbe Datei vor zehn Sekunden bereits einmal geöffnet worden ist und sich seitdem nicht geändert hat. Im Ergebnis überwachen sie in einer Anwendung, die viel mit vielen Tabellen arbeitet, unglaublich viele Vorgänge, die keiner Überwachung bedürfen. Dadurch verlangsamen sie die Arbeit, ohne gleichzeitig Benefit zu generieren.

2. Es gibt zwar einige wenige Viren, die quasi explizit der Vernichtung von Datentabellen gewidmet sind, aber diese Schadprogramme sind überwiegend relativ alt, weshalb sie bereits in dem Moment erkannt werden sollten, in dem sie das System zu betreten versuchen. Ansonsten sind Datentabellen, wie wir sie überwiegend verwenden, für Schadprogramme uninteressant.

3. Hat ein Schadprogramm das System befallen, das alle Dateien zerstört oder löscht, die vorhanden sind und/oder angefasst werden, und kann erfolgreich "arbeiten", ist sowieso alles zu spät.

4. Regelmäßige Datensicherungen sind wirkungsvoller als jeder Virenscanner.

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 11:55
von satmax
Hallo Tom,

eine Frage dazu, wenn ich mich entschließe meine Programme zu signieren, fallen dann solche zum Beispiel Kasparsky Meldungen weg:

Unter Proaktiver Schutz:
meinProgramm.exe Gefunden: PDM.Private.da... (Verdächtiges Verhalten erkannt)
meinProgramm2.exe Gefunden: PDM.DNS Query...
meinProgramm2.exe Gefunden: Irgendwas mit Passort und so....

Das wäre für mich ein Grund (im Moment der einzige) meine Programm zukünftig zu signieren. Wobei das größte ist, bei diesem Kunden ist die Lizenz des Virenscanners seit Februar abgelaufen und ich kann mich damit herumplagen.... :angry1:

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 14:15
von Tom
Hallo, Markus.
fallen dann solche zum Beispiel Kasparsky Meldungen weg
Nach meiner Erfahrung: Ja. Auch die Einstufung als "mittlere Bedrohung" mit der Folge, dass eine "Prozessüberwachung" stattfindet, was die Applikation um den Faktor 5 verlangsamen kann, gibt es dann nicht mehr. Außerdem verzichten Scanner wie Avira oder Norton gnädig darauf, ihre Heuristiken auf die Programme anzusetzen.

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 14:29
von satmax
Danke, dann werde ich mir eine Signatur besorgen. Darf ich Dich dann nochmals mit der ein oder anderen Frage quälen, in einen neuen Thread?

Re: Fehler bei DbRUnLock()

Verfasst: Do, 06. Nov 2014 14:44
von Tom
Klar, gerne.

Die Signatur hat darüberhinaus natürlich noch einen psychologischen Wert, da, wenn das Programm installiert, verknüpft und/oder ausgeführt wird, nicht mehr die Frage erscheint, ob Software XY von einem unbekannten Hersteller was tun darf. Stattdessen sieht man dort den korrekten Firmennamen. Und man kann natürlich auch die mit Setup-Programmen erzeugten Pakete signieren, so dass auch in diesem Moment bereits eine entsprechende Erkennung stattfindet.

Das ganze ist allerdings etwas fuddelig. Die Abfrage und Lizensierung des Zertifikats erfolgt, wenn man das mit Symantec macht, über den IE, und sie bleibt in der Folge an den konkreten Arbeitsplatz und, wichtig, diese IE-Version gebunden. Aktualisiert man das oder wechselt man die Ausstattung, wird es ein wenig haarig. Neuere IE-Versionen muss man regelmäßig in den entsprechenden Kompatibilitätsmodus zwingen. Ich habe gerade zum dritten Mal aktualisiert, dieses Mal aber für fünf Jahre, und es hat noch nie beim ersten Anlauf geklappt. :wink:

(Leider sind auch die Hilfen und Foren bei Symantec sehr kryptisch.)

Re: Fehler bei DbRUnLock()

Verfasst: Fr, 01. Mär 2019 18:34
von Schorsch
Hallo Jan,
bei mir kam dieser Fehler auch vor, mit derselben "Erklärung".
Nach längerem Suchen habe ich herausgefunden, dass an einer bestimmten Stelle in einem anderen Programmmodul
ein spezieller Index nicht gepflegt worden ist, trotz update. Ich hatte da keine CDX sondern lauter einzelne NTX Dateien - und prompt eine vergessen zu öffnen.
Wenn jetzt die Datei mit ALLEN Indexen geöffnet worden ist und ein Update auf einen Satz mit dbrlock() gemacht wurde, ist das Modul dann beim dbrunlock() mit diesem Fehler abgebrochen - obwohl der besagte (fehlende) Satz gar nicht direkt angesprochen war.
Die Lösung bei mir war also - den VERGESSENEN Index im entsprechenden Modul zu öffnen - und gut war es. Der Fehler ist mit Version 1.90.355 und 2.0 aufgetreten.

Re: Fehler bei DbRUnLock()

Verfasst: Mo, 04. Mär 2019 6:44
von brandelh
Schorsch hat geschrieben: Fr, 01. Mär 2019 18:34 Die Lösung bei mir war also - den VERGESSENEN Index im entsprechenden Modul zu öffnen - und gut war es. Der Fehler ist mit Version 1.90.355 und 2.0 aufgetreten.
grundsätzlich muss man immer alle Indexdateien einer Datei gleichzeitig offen haben, falls man Schreibzugriff hat.
Ich nutze daher eine Funktion, welche die Datei mit allen zugehörigen Indexen öffnet (bei NTX, bei CDX immer den gleichen Dateinamen), so kann nix vergessen werden.