PDA

Vollständige Version anzeigen : Kurze Frage! Was bedeutet: 204 Datensätze wegen Sperrverletzungen nicht aktualisiert?


Raglan
06.05.2004, 17:25
Hallo,

Kurze Frage!
Was bedeutet ganz generell die Meldung bei einer Update-Abfrage:

(204) Datensätze wegen Sperrverletzungen nicht aktualisiert!

Also, Schlüsselverletzung und Gültigkeitsverletzungen kann ich noch verstehen, aber Sperrverletzungen?

Vielleicht hilft mir ja Eure Aussage weiter, ansonsten poste ich genaueres.


Grüße Raglan

HarryM
06.05.2004, 20:31
Hallo Raglan,

kann es sein, dass andere Benutzer während der Aktualisierung mit der Tabelle arbeiten? Dadurch wird nämlich nicht nur der bearbeitete Datensatz gesperrt, sondern auch benachbarte (je kleiner die Datenmenge pro Datensatz, desto größer die Anzahl der gesperrten Datensätze).

In einem solchen Fall ist es ratsam, die Datenbank zur Aktualisierung im Exclusiv-Modus zu öffnen.

Gruß

Harry

Raglan
07.05.2004, 11:37
Hi,

nein, hätte ich vieleicht gleich sagen sollen. Ich habe extra daraufgeachtet, dass kein anderer die DB geöffnet hat. Deswegen irretiert mich auch die Meldung.

Ich werde bei Zeiten eine Bsp.DB hier reinstellen.

Grüße Raglan

Raglan
07.05.2004, 16:09
Hallo alle zusammen,

wen es interessiert, ich habe das Problem gelöst.

Die genannte Abfrage ist Teil einer Frontend/Backend-Lösung. Das Backend liegt natürlich serverseitig.

Es hat mich ziemlich stutzig gemacht, wenn ich die Abfrage lokal ausgeführt habe, d.h. Front- und Backend auf C:\ , lief sie ohne Probleme (keine Fehlermeldung, Dauer: 5 Sekunden)

Liegt das Backend aber serverseitig im Netz gab es halt diese Probleme.
Zuerst dachten wir es könnte an dem Virenscanner liegen, hat sich aber nicht bewahrheitet.

Hier nun eine Hinweis:

Access und Netware 5.0 (Novell) mögen sich nicht. Führt zu Serverproblemen.
Im FileSys wird dies geloggt.
Abhilfe schaffte die Erhöhung von drei Parametern am Server. Mehr kann ich im Mom. nicht sagen, mein Admin ist nicht mehr da.

Auf Nachfrage würde ich ihn aber noch mal fragen welche das sind und wie sie heissen.

Grüße Raglan

reinir
07.05.2004, 18:14
@Raglan
kann Deine Aussage nur bestätigen, allerdings traten und treten die Probleme nicht nur bei der Novell Netware 5.x auf, sondern waren schon in der 4er und sind auch noch in der 6er vorhanden.

Abhilfe schafft die Max. File Locks, Max. Record Locks oder so ähnlich "raufzuschrauben" und zwar gewaltig - das Ganze ist auch unabhängig von der eingesetzten Access-Versionen (wir haben bei uns von 2.0 bis 2000 im Einsatz gehabt bzw. haben).

für die genaue Benamsung der Einstellungsparameter müsste ich am Mo. mal unsere Novell-Server checken... falls es jemanden intressiert.

seb23
27.08.2004, 11:34
@Raglan:

Mich würden diese Parameter (und die von Dir eingestellten Werte, mit denen Deine Abfragen nun hoffentlich fehlerlos laufen) brennend interessieren, da ich das gleiche Problem habe (mit Acc2000 und NetWare5.1).

eichner
27.08.2004, 23:16
Auch ich hätte großes Interesse an diesen Angaben
Bernd

seb23
24.09.2004, 14:50
Hallo zusammen!

Ich habe mich noch einmal mit dem Problem beschäftigt und die Ursache sowie mögliche Lösungen herausgefunden.

Bei der Aktualisierung von Datensätzen innerhalb einer Access-Datenbankdatei arbeitet Access mit Record Locks, also mit Sperrungen von Datensätzen. Defaultmäßig ist Access so konfiguriert, dass bis zu 9500 Record Locks gesetzt werden, bevor eine weitere Transaktion gestartet wird. (Dies wird über den Registry-Eintrag MaxLocksPerFile der Jet-DB-Engine festgelegt.) Novell Netware wiederum hat die Zahl von Record Locks pro Verbindung (SET-Parameter "Maximum Record Locks Per Connection") defaultmäßig auf 500 (!) begrenzt.

Diese Konstellation führt bei der Aktualisierung ausreichend großer Mengen an Datensätzen nicht nur zu der eingangs beschriebenen Access-Fehlermeldung, sondern auch zu Fehlermeldungen auf dem Novell-Server (in System\sys$log.err), die wie folgt aussehen:

26.08.2004 14.20.20 : FILESYS-5.10-521
Severity = 0 Locus = 11 Class = 19
Station # record lock threshold exceeded. Total violations ####.

Alle Informationen zu diesem Problem findet man im Novell TID 10019363 unter
http://support.novell.com/cgi-bin/search/searchtid.cgi?/10019363.htm

Das Problem lässt sich demzufolge lösen, indem der Wert des SET-Parameters "Maximum Record Locks Per Connection" entsprechend hoch gesetzt wird. Stellt man ihn z.B. auf 10000 ein, so müsste man theoretisch auf der sicheren Seite sein, weil dann NetWare mehr Locks pro Verbindung erlaubt, als Access pro Transaktion (9500).

Wichtig dabei ist, dass auch der SET-Parameter "Maximum Record Locks", der die Gesamtzahl der erlaubten Record Locks auf dem Server festlegt, entsprechend hoch gesetzt wird.

Ich habe diese Einstellungen (10000 Per Connection und 20000 insgesamt) nun an unserem Novell-Server vorgenommen. Das Ganze muss sich aber noch in der Praxis bewähren.

Gruß,
Seb