我们有几个独立运行但写入同一个日志文件的 Java 程序实例。
当日志文件被多个进程实例轮换和写入时,我们偶尔会收到陈旧的 NFS 文件句柄错误。
我们现在正在考虑为每个实例设置单独的日志文件。有没有人已经遇到过这个问题并且有更好的解决方案。
谢谢 Nayn
答案1
不要忘记 NFS 是不是POSIX 兼容文件系统。它非常关闭不符合 POSIX 规范,而人们通常会因此而绊倒。暴露其不符合规范的领域之一是删除和重命名文件,尤其是目录。
我的建议是避免让两个远程进程访问 NFS 卷上的同一个文件,除非应用程序专门编码为与 NFS 配合使用。
答案2
是的,如果您删除由另一台主机通过 NFS 打开的文件,那么您会看到此错误。
在这种情况下,单独的日志文件(或使用 syslog,或不记录到 NFS)听起来是最好的主意。