|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2004 Messages : 121 ![]() |
Bonjour,
Je débute avec Firebird/IB et je viens de découvrir ce post qui m'interroge... En quincaillerie, je connais la différence entre un loquet et un verrou Comment la charmante véronique peut-elle avoir un dead lock ? Je croyais qu'IB/Firebird n'utilisaient pas de verrous, mais un système de versionning ? Doit encore y avoir un truc que j'ai mal compris... Quelqu'un peut éclairer ma lanterne ?
__________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
1/Il y a des transactions qui sont "incompatibles" entre elles et donc ont peux avoir ce type de message.
2/Ensuite le versionning a ses avantages mais a aussi des limitations. Exemple : Une transaction 1 (readCommited) s'ouvre et lit l'enregistrement du client Dupond Une transaction 2 (readCommited) s'ouvre et lit l'enregistrement du client Dupond La T1 met a jour le prenom et commit. La T2 met a jour le prenom et là il va recevoir un message comme quoi la version de l'enregistrement qui a servi à la modification n'était pas le dernier. 3/Fb (et pas IB) permet la pose de verrou mais son utilisation doit rester très épisodique (c'est à déconseillé en utilisation normale). |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2004 Messages : 121 ![]() |
Bonjour,
Ok, c'est l'exemple classique. Mais s'il est normal que cela génère un message, il ne s'agit pas d'un deadlock ! A moins qu'on n'utilise pas la même terminologie ? Pour moi, un deadlock, c'est quand deux transactions se bloquent mutuellement, et cela ne peut arriver (du moins je le croyais !) qu'avec la technique du locking et pas avec le versioning... Dans votre exemple, la seconde transaction échoue, mais n'en empêche pas de suivantes ? Où est le dead lock ?
__________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com