Merci pour la réponse à question "classique"... je sais mes compétences dans le domaine sont vraiment pauvres !!!
Après avoir lu la description de la fonction LOCK, une ligne me chagrine !!!
Il n'y a pas de commande UNLOCK TABLE ; les verrous sont systématiquement relâchés à la fin de la transaction
CE point m'inquiète quelque peut... En effet, dans la procédure qui concerne mon application, un module va regarder si un job est à traiter, il va donc lire une donnée sur une table, puis il va affecter cette donnée à un autre état (par exemple "en cours d'évaluation"). Il va vérifier s'il peut effectuer le calcul : si oui, il réaffecte la valeur à "en cours de traitement", sinon, il réinitialise la valeur à "job en attente de traitement".
Est-ce qu'il n'y a pas de risque de conflit entre la premier lecture et la première écriture ?
Il n'y a pas possibilité de faire quelque chose du genre :
- J'essaie de locker la donnée : oui continue, non je rééssaye
switch "donnée"
case : "en attente de traitement"
Je vérifie si je peux effectuer le job
si oui, je change donnée en "en cours de traitement"
Je délock
sinon je délock
case : "en cours de traitement"
Je délock
Cette question est peut-être aussi bête que la première, mais de ces questions basiques dépendent tout le reste de mon application.
En vous remerçiant.
Partager