我有一个tomcat / blazeDS应用程序,有几个用户写入同一个xml文件。当他们写我希望在该文件上有文件锁定。我的第一次尝试是获取文件的文件通道并为文件建立一个lock()。但遗憾的是,如果我尝试这样做,总会出现OverlappingFileLockException,因为对于对blazeDS组件的新调用总会有一个新进程。
是否有可能在会话中存储FileLock或tomcat的基本功能来锁定会话中的文件。
让你们所有人
答案 0 :(得分:0)
我通过在静态类中使用ReentrentLock来解决它,所以在锁定时我无法访问它。
public class DataAccessUtil {
private static final ReentrantLock lock = new ReentrantLock();
...
public static void lockDataFolder() {
lock.lock(); // block until condition holds
}
public static void unlockDataFolder() {
lock.unlock();
}