2010-11-30 7 views
0

私は、複数のユーザーが同じxmlファイルに書き込むtomcat/blazeDSアプリケーションを持っています。彼らは私がそのファイルにファイルロックをしたいと書いている間。私の最初の試みは、ファイルのファイルチャンネルを取得し、そのファイルにlock()を設定することでした。しかし残念ながら、blazeDSコンポーネントへの新しい呼び出しのために常に新しいプロセスがあるので、私がそうしようとすると、常にOverlappingFileLockExceptionがあります。FileLock with Tomcat ServerとBlazeDS

セッション内でFileLockを保存するか、Tomcatの基本機能を使用してセッション内のファイルをロックする可能性はありますか?それがロックされている間、私はそれにアクセスすることはできませんので

Thnakあなたのすべての

+0

それはあなたが –

+0

(ファイルへの同時アクセスを防止したり、同時書き込みなどを防ぐために)を達成しようとしているかを説明できるかどうか、私は使用してそれを解決に役立つだろう静的クラス内のReentrentLock – Andreas

答えて

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

}