FileLock с сервером Tomcat и BlazeDS - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть приложение tomcat / blazeDS, в котором несколько пользователей пишут в один и тот же XML-файл. в то время как они пишут, я хочу иметь блокировку файла на этом файле. моей первой попыткой было получить файловый канал файла и установить блокировку () для файла. Но, к сожалению, всегда есть OverlappingFileLockException, если я пытаюсь это сделать, потому что всегда есть новый процесс для нового вызова компонентов blazeDS.

Есть ли возможность сохранить FileLock в сеансе или базовую функциональность tomcat для блокировки файлов в сеансе.

Спасибо всем вам

1 Ответ

0 голосов
/ 24 июня 2011

Я решил это, используя 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(); 

}
...