Bonjour,
Dans le cadre d'un projet informatique d'entreprise, en tant que stagiaire, je suis amené à réfléchir à une problématique de verrous.
Application web: J2EE, Jsp ,Spring, Struts +de l'Ajax+ oracle sous Windows
Soit un utilisateur qui désire modifie un prix. Or un autre utilisateur peut faire de même.
Comment ne pas arriver en cas particulier ou :
- l'utilisateur demande une modification d'une fiche produit pour le prix, mais entre temps part boire un café
- alors qu'un 2e utilisateur arrive, demande aussi une modification de la fiche et la valide
- entre temps, le 1er utilisateur revient et se décide enfin à valider sa modification avec un nouveau prix qui annulerait la modification du 2e utilisateur, sans le savoir.
Je sais qu'Oracle gère les verrous , possible via la notion de transaction. J'ai aussi remarqué que java permettait de gérer la notion de transaction.
Selon moi, il suffirait, lorsque un utilisateur demande une modification de fiche, de faire un lock via une transaction en java. Et si la modification n'a pas été effectué avant x minutes, de cloturer la transaction sur la fiche du produit et prévenir l'utilisateur qu'il a pris trop de temps.
Après comment le faire techniquement parlant, si vous avez des idées... (thread minuté ? ...)
J'ai exposé brièvement ma solution au responsable du projet qui dit que cela ne lui convenait pas forcément.
Qu'en pensez vous ?Avez vous d'autres solutions ?
Cordialement
Partager