2010-11-30 29 views
0

J'ai une application tomcat/blazeDS avec plusieurs utilisateurs écrire dans le même fichier xml. pendant qu'ils écrivent je veux avoir un verrou de fichier sur ce fichier. ma première tentative a été d'obtenir le filechannel du fichier et d'établir un lock() au fichier. Mais malheureusement, il y a toujours une exception OverlappingFileLockException si j'essaie de le faire parce qu'il y a toujours un nouveau processus pour un nouvel appel aux composants blazeDS.FileLock avec serveur Tomcat et BlazeDS

Y at-il une possibilité de stocker un FileLock dans une session ou une fonctionnalité de base de tomcat pour verrouiller des fichiers dans une session.

Thnak vous tous

+0

Il serait utile que vous pouvez décrire ce que vous essayez d'atteindre (pour empêcher l'accès simultané au fichier ou pour empêcher des écritures simultanées, etc.) –

+0

Je l'ai résolu en utilisant un ReentrentLock dans une classe statique – Andreas

Répondre

0

Je l'ai résolu en utilisant un ReentrentLock dans une classe statique donc je ne peux pas y accéder pendant qu'il est verrouillé.

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

}