Hi,
ein Prozess (a) lädt eine große Datei und nutzt diese anschließend. Ein anderer Prozess (b) möchte diese Datei ebenso nutzen, muss aber warten, bis a diese _vollständig_ runtergeladen hat.
erklär doch bitte mal genauer.
* Laufen die Prozesse auf demselben Host?
* Haben sie beide direkten Dateizugriff?
* Von wo nach wo wird die "große Datei" geladen?
Welche (zuverlässigen) Möglichkeiten gibt es noch? Ich meine jetzt nicht, eine DB durch eine Textdatei zu ersetzen oder ähnliches. Wichtig: es gibt keine Prüfsumme. Kann ein Prozess überhaupt feststellen, ob eine Datei vollständig geladen wurde?
Ja, über Dateisperren (file locking). Prozess a liest oder schreibt die Datei (das geht aus deiner Beschreibung leider nicht hervor), hat sie also für eine gewisse Dauer geöffnet. Wenn der gleichzeitige Zugriff mehrerer Prozesse so heikel ist, sollte die Datei währenddessen für andere Prozesse vollständig gesperrt werden. Dann braucht's keine weiteren Metainformationen.
So long,
Martin
Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
Erfahrung bekommt man, indem man das nicht tut.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(