Also lese ich gerade Dateien mit einem Datei-Inbound-Adapter (nio locker) und logge sie einfach ein.So verschieben Sie gesperrte Dateien mit einem Datei-Ausgangs-Adapter
Ich habe versucht, einen Dateiausgangsadapter am Ende des Flusses anzuhängen, um die Dateien an einen neuen Speicherort zu verschieben (/ done), aber jedes Mal, wenn ich einen Fehler erhalte, weil die Datei gesperrt ist.
Wenn ich die nio-locker-Flag entfernen, ist alles in Ordnung. Problem hier ist, dass ich möchte, dass mehrere JVM an diesen Dateien arbeiten, und es besteht das Risiko, dass eine Datei von zwei JVMs aufgenommen wird.
Danke, Cristi
Hallo. Ich habe darüber auch nachgedacht, aber ich wollte mehrere JVM (Prozesse), die dasselbe Verzeichnis scannen. Angesichts dessen wird es eine sehr kleine Chance geben, dass eine andere JVM die Datei aufnimmt, die gerade entsperrt wurde, um verschoben zu werden. Ich weiß nicht, ob es dafür eine funktionierende Lösung gibt. Für den Moment habe ich den NioLocker entfernt und ich habe nur eine JVM, die einen bestimmten Ordner scannt. – Cristi
Wie wäre es dann https://stackoverflow.com/questions/35093757/move-a-file-without-releasing-lock? –
Hey. Entschuldigung wegen der späten Antwort. Ich habe das auch versucht, die Kopie funktioniert ohne irgendein Problem, aber das Hauptproblem (Datei kann nicht aus dem Eingabeordner gelöscht werden) bleibt noch. Was wir getan haben, ist, eine Entscheidung zu treffen und zuzustimmen, dass nur eine JVM einen bestimmten Ordner gleichzeitig scannt (um eine Sperrung zu vermeiden). – Cristi