Veralteter NFS-Fila-Handle-Fehler mit log4j

Veralteter NFS-Fila-Handle-Fehler mit log4j

Wir haben einige Instanzen eines Java-Programms, die unabhängig ausgeführt werden, aber in dieselbe Protokolldatei schreiben.

Gelegentlich erhielten wir einen Fehler wegen eines veralteten NFS-Dateihandles, wenn die Protokolldatei rotiert und von mehreren Prozessinstanzen geschrieben wurde.

Wir denken jetzt darüber nach, für jede Instanz eine separate Protokolldatei zu erstellen. Hat jemand dieses Problem bereits und kennt eine bessere Lösung?

Danke, Nayn

Antwort1

Vergessen Sie nicht, dass NFSnichtein POSIX-kompatibles Dateisystem. Es ist sehrschließenzur POSIX-Konformität, worüber die Leute normalerweise stolpern. Einer der Bereiche, in denen die Nichtkonformität offengelegt wird, ist das Löschen und Umbenennen von Dateien und insbesondere Verzeichnissen.

Ich rate dazu, den Zugriff zweier Remote-Prozesse auf dieselbe Datei auf einem NFS-Volume zu vermeiden, es sei denn, die Anwendung ist speziell für die Arbeit mit NFS codiert.

Antwort2

Ja, wenn Sie eine Datei löschen, die von einem anderen Host über NFS geöffnet ist, wird dieser Fehler angezeigt.

Separate Protokolldateien (oder die Verwendung von Syslog oder keine Protokollierung bei NFS) scheinen in diesem Fall die beste Idee zu sein.

verwandte Informationen