Bonjour,
la problematique a laquelle je me trouve confrontee me semble classique. Il doit donc surement exister un pattern standard pour l'implem. Or je ne le connais pas et comme je ne voudrais pas re-inventer la roue...svp, eclairez-moi!
problematique:
mon appli web permet aux utilisateurs d'editer un ensemble de fichiers (stocker sur le serveur) commun a tous les utilisateurs. Il y a donc un probleme de concurrence d'acces a gerer pour eviter que deux (ou plus) utilisateurs se retrouvent entrain de travailler sur le meme fichier en meme temps.
Chaque edition, par un utilisateur, se traduit par plusieurs appels successifs a ma servlet.
plus en detail:
je voudrais donc, lorsqu'un utilisateur fait une requete a ma servlet, proceder comme suit:
1. la servlet verifie si le fichier est deja editer par qq'un d'autre (c-a-d une autre session que la sessuin courante),
2. si non, la servlet prend un "lock" sur le fichier en lui associant la session courante (pour pouvoir savoir qui est entrain d'editer),
3. la servlet effectue plusieurs actions de lecture et ecriture sur le fichier en question (via plusieurs FileWriter et FileReader et XSL transformations),
4. la servlet renvoie une reponse,
5. le meme utilisateur envoie une nouvelle requete (suite de l'edition sur le meme fichier toujours),
6. la servlet verifie si le fichier n'est pas entrain d'etre editer par quelqu'un d'autre (non puisque c'est cette session, dans notre exemple, qui edite le fichier),
7. la servlet effectue encore d'autres actions de lecture et ecriture sur le fichier puis, determine que c'est la fin de l'edition et libere le "lock" posee sur le fichier par cette session, lors d'une requete precedente. le fichier sera alors disponible lors d'une requet a la sevlet effectuee par une autre session.
voila. desolee d'avoir ete un peu prolixe...
Merci!
Pi2.
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager