Binäre Datei (ähnlich eines Datensatz in DB) bei der Bearbeitung sperren

29/08/2007 - 10:48 von Dirk Wölfel | Report spam
Hallo zusammen,

für eine Anwendung, die prinzipiell Mehrbenutzerbetrieb vorsieht,
möchte ich binàre Dateien in einem Netzwerk àhnlich einer Datenbank
einbinden.

Die Dateien sollen prinzipiell zum lesen von jedem Arbeitsplatz
zugànglich sein. Wenn ein Nutzer jetzt aber eine Edit-Session startet
und Änderungen an einem Datensatz (Datei) vornimmt, soll dieser
Datensatz für andere Anwender gesperrt werden - bis der erste User die
Sperre durch Beenden der Edit-Session aufhebt.

Ist dies mit einfachen Bordmitteln erreichbar auf FileSystem-Ebene?

Gruß und danke,

Dirk
 

Lesen sie die antworten

#1 Alfred Malleier
29/08/2007 - 12:31 | Warnen spam
Dirk Wölfel schrieb:

Hallo zusammen,

für eine Anwendung, die prinzipiell Mehrbenutzerbetrieb vorsieht,
möchte ich binàre Dateien in einem Netzwerk àhnlich einer Datenbank
einbinden.

Die Dateien sollen prinzipiell zum lesen von jedem Arbeitsplatz
zugànglich sein. Wenn ein Nutzer jetzt aber eine Edit-Session startet
und Änderungen an einem Datensatz (Datei) vornimmt, soll dieser
Datensatz für andere Anwender gesperrt werden - bis der erste User die
Sperre durch Beenden der Edit-Session aufhebt.

Ist dies mit einfachen Bordmitteln erreichbar auf FileSystem-Ebene?

Gruß und danke,

Dirk


Eine recht schlaue Lösung gibt es für eine Datei sicherlich nicht. Möglich
wàre ein Datensatzfeld, auf welches man ein Flag setzt sobald der Datensatz
geàndert werden soll. Nach dem Ändern dann wieder entfernen. Jeder der
Schreiben will, muss erst dieses Flag checken und darf dann erst schreiben,
sobald das Flag weg ist. Und, damit es nicht ewig hàngen bleibt falls ein
Anwender seinen Schreibprozess nicht richtig abschließt, würde ich eine
Maximal-Zeit vergeben, welche man hat um zu schreiben (wenige Sekunden).
Falls in dieser Zeit der Datensatz nicht frei gegeben wird, dann einfach
trotzdem schreiben (eventl. Meldung in Logfile schreiben).

Falls es nicht möglich ist, ein Feld direkt in der Datei einzurichten, dann
eben eine paralelle Datei anlegen, welche jeweils Datensatznummer und
Schreibschutzflag beinhaltet.

Grüße Alfred M

Ähnliche fragen