G
GastBenutzer
Gast
Hallo Zusammen,
ich habe folgendes Problem bei dem ich etwas Hilfe benötige.
Ich habe eine Anwendung geschrieben, deren Persistenz Schicht (Also Datei Zugriff), multithreading fähig ist.
D.h. mehrere arbeitende Threads machen IO-Eingaben, -Ausgaben, und löschen auch. Durch diese besondere Schicht gibt es dabei auch keine Konflikte und alles ist wunderbar.
Habe es letztlich auf einer Dual-Prozessor Maschine mit 800 Threads getest, und keine Fehler erhalten. Scheint also sicher zu sein :shock: .
Trotzdem bin ich gerade dabei eine Klasse zu schreiben die Fehlerfall eingreifen kann. Und nun kommen wir zu meinen eigentlichen Problem:
Wenn ein FileWriter beim schreiben, (aus welchen Gründen auch immer), kaputt geht, und dummerweise sein Lock auf der Datei hängen bleibt, würde ich gerne diesen wieder entfernen! Mit
kann ich heraus finden ob noch ein Lock existiert. Aber wie kann in denn im dem Falle das der missglückte Schreibversuch einen Lock hinterlassen hat, diesen entfernen?
Für jegliche Anregungen bin ich dankbar.
Gruß,
Marius
ich habe folgendes Problem bei dem ich etwas Hilfe benötige.
Ich habe eine Anwendung geschrieben, deren Persistenz Schicht (Also Datei Zugriff), multithreading fähig ist.
D.h. mehrere arbeitende Threads machen IO-Eingaben, -Ausgaben, und löschen auch. Durch diese besondere Schicht gibt es dabei auch keine Konflikte und alles ist wunderbar.
Trotzdem bin ich gerade dabei eine Klasse zu schreiben die Fehlerfall eingreifen kann. Und nun kommen wir zu meinen eigentlichen Problem:
Wenn ein FileWriter beim schreiben, (aus welchen Gründen auch immer), kaputt geht, und dummerweise sein Lock auf der Datei hängen bleibt, würde ich gerne diesen wieder entfernen! Mit
Code:
new RandomAccessFile(path2file, "r").getChannel().tryLock()
Für jegliche Anregungen bin ich dankbar.
Gruß,
Marius