log4j의 오래된 NFS fila 처리 오류

log4j의 오래된 NFS fila 처리 오류

독립적으로 실행되지만 동일한 로그 파일에 기록하는 Java 프로그램의 몇 가지 인스턴스가 있습니다.

여러 프로세스 인스턴스에서 로그 파일을 회전하고 쓸 때 오래된 NFS 파일 핸들 오류가 자주 발생합니다.

이제 우리는 인스턴스별로 별도의 로그 파일을 갖는 것을 고려하고 있습니다. 이미 이 문제가 발생한 사람이 있고 더 나은 해결 방법이 있는 사람이 있습니까?

고마워요 나인

답변1

NFS는~ 아니다POSIX 호환 파일 시스템. 그것은 매우닫다사람들이 일반적으로 실수하는 POSIX 규정 준수. 비준수를 노출하는 영역 중 하나는 파일, 특히 디렉터리를 삭제하고 이름을 바꾸는 것입니다.

내 조언은 애플리케이션이 NFS와 작동하도록 특별히 코딩되지 않은 한 두 개의 원격 프로세스가 NFS 볼륨의 동일한 파일에 액세스하도록 하는 것을 피하는 것입니다.

답변2

예, NFS를 통해 다른 호스트에서 열려 있는 파일을 삭제하면 이 오류가 표시됩니다.

이 경우 별도의 로그 파일(또는 syslog를 사용하거나 NFS에 로깅하지 않음)이 가장 좋은 아이디어처럼 들립니다.

관련 정보