我有一个缓存启动 SOAP 调用的微小/简单结果的系统
我需要实例能够在启动时重新加载它们的缓存(以防 SOAP 服务失效),并且还需要处理多个实例使用此缓存文件的可能性
我选择使用java.util.prefs
,但 Java 的内置自动同步线程间歇性失败(1% 的时间使用默认的 JVM 30 秒后备存储同步)转储以下异常:
Jan 8, 2010 12:30:07 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
我怀疑这个错误,但这已在 1.5(tiger-b40) 中修复,我们在这个盒子上的 java 5 是“1.5.0_16-b02”。
我现在怀疑这可能是因为我们有多个 JVM 共享这个后备存储,尽管这似乎不会在我们的其他机器上发生。
谁能证实这一点?有什么风险,如果有的话?
如果我的方法有缺陷,我应该使用什么作为替代方法?