2011-06-06 169 views
3

我有一个java应用程序正在做很多文件操作。对于每个文件处理(任务),我将打开一个log4j文件来编写任务日志。在每个任务中,我打开一个文件并进行一些操作并写入三个新文件。任务正在并行运行。现在随机在两周或三周内,我的任务日志文件将进入数据文件(并非总是如此,数据和日志正在混合写入新的数据文件)。Java文件损坏问题

我们已经查看了代码,无法找到任何同步问题或FileDescriptor重用。操作系统:AIX 6.1.6.3 JAVA:IBM JAVA 1.5 SR12 FP1 架构:Power 6; 8核心与SMT上 存储:SAN

感谢 尼科什PL

+0

我不认为任何人都可以在不查看代码的情况下诊断此问题。通过它的声音,有太多的代码期望有人在免费看... ...。我建议你尝试找一个Java并发性专家,你可以付费来检查你的代码。 – 2011-06-06 10:36:13

+0

感谢您的回复!它可能不完全是代码问题。它也可以是http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml。 – 2011-06-06 12:24:18

+0

嗯......请注意,引用的Sun错误在Sun Java 5_u14&6_u4中被标记为“修复已完成”。我建议您联系IBM支持人员,并询问AIX/Power的哪个Java 1.5版本修复了该错误。 – 2011-06-07 00:55:54

回答

1

你在try/finally块,确保你的flush(),然后关闭()文件输入流(或文件阅读器)?

+0

感谢您的答复。是的,我们已经证实。 – 2011-06-06 11:53:32