Teil von SELFHTML aktuell Teil von Artikel Teil von Programmiertechnik Teil von Sperren von Dateien

Sperren von Dateien: Programmiersprachenübergreifende Sperren

nach unten Allgemeines

Allgemeines

Es kommt vor, dass man Programme / Scripte in verschiedenen Programmiersprachen hat, die gemeinsam eine Datei verwenden sollen. Unter Windows stellt dies kein Problem dar, da es dort nur einen einzigen Sperrmechanismus gibt. Daher ist es egal, mit welcher Programmiersprache die Datei nun unter Windows gesperrt wird - solange die Sperre korrekt durchgeführt wird, kommt sich nichts gegenseitig ins Gehege.

Unter UNIX-artigen Betriebssystemen sieht dies nun schwieriger aus, da sie theoretisch drei und effektiv zwei (lockf(3) nutzt praktisch überall fcntl(2), auch wenn dies in der Spezifikation nicht vorgeschrieben ist) verschiedene Mechanismen zum Sperren von Dateien unterstützen. Alle Beispiele für PHP, Perl und Python hier nutzen im Normalfall flock(2), d.h. sie sind untereinander kompatibel. Problematisch wird es, wenn Perl explizit mit fcntl(2)-Emulation installiert wurde oder Java dazukommen soll (oder ein anderes Programm in einer hier nicht behandelten Programmiersprache, das auch fcntl(2) verwendet). Denn Java nutzt unter UNIX-artigen Betriebssystemen immer fcntl(2). Daher bieten sich sich folgende Alternativen an:

Beachten Sie:

Die explizite Verwendung eines fcntl(2)-basierten Locking-Mechanismus steht im Konflikt mit der Abschottung gegenüber anderen Seite Threads.

weiter Seite Sperren von Dateien, die über das Netzwerk eingebunden sind

zurück Seite Threads - Stolperfallen der modernen Performanceoptimierung

Teil von SELFHTML aktuell Teil von Artikel Teil von Programmiertechnik Teil von Sperren von Dateien

© 2006 bereichsübergreifende Seite Impressum