2010-11-30 2 views
0

나는 여러 사용자가 동일한 xml 파일에 작성하는 tomcat/blazeDS 응용 프로그램을 가지고 있습니다. 그들은 내가 그 파일에 파일 잠금을 갖고 싶다고 쓰고있다. 내 첫 번째 시도는 파일의 파일 채널을 가져 와서 파일에 lock()을 설정하는 것이 었습니다. 그러나 불행하게도 blazeDS 구성 요소에 대한 새 호출에 항상 새로운 프로세스가 있기 때문에 항상 시도 할 경우 항상 OverlappingFileLockException이 발생합니다.Tomcat 서버와 BlazeDS가있는 FileLock

세션 내에서 FileLock을 저장하거나 Tomcat의 기본 기능을 사용하여 세션 내에서 파일을 잠글 수 있습니다.

Thnak 당신에게 내가이 잠겨있는 동안 그래서 그것을 액세스 할 수 없습니다 정적 클래스 내에서 ReentrentLock를 사용하여 그것을 해결 모든

+0

그것은 당신이 당신이 달성하려고하는 것을 설명 할 수있는 경우 (파일에 동시 액세스를 방지하기 위해 또는 등 동시 쓰기를 방지하기 위해) 도움이 될 –

+0

내가 사용하여 해결 정적 클래스 내의 ReentrentLock – Andreas

답변

0

.

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(); 

}