salut a tous
je souhaite savoir
comment oracle gere les conflits d'accés
quelle sont les parmetres a configurer
merci d'avance pour votre aide
salut a tous
je souhaite savoir
comment oracle gere les conflits d'accés
quelle sont les parmetres a configurer
merci d'avance pour votre aide
En ce qui concerne le verrouillage des lignes dans un table, Oracle gère les verrous automatiquement pour les lignes concernées pour chaque commande INSERT/UPDATE/DELETE (écrivain). UN SELECT sans clause FOR UPDATE (lecteur) ne prend jamais de verrou sur les lignes sélectionnées. Il n'y a jamais conversion d'un verrou ligne en un verrou table.
Ce verrouillage automatique peut-être insuffisant lorsqu'on veut vérifier certaines contraintes sur les données et/ou être sûr que des données concernées ne vont pas être modifiées: dans ce cas, il faut utiliser SELECT FOR UPDATE qui va verrouiller toutes les lignes sélectionnées de la table en mode exclusif (comme un écrivain).
Dans Oracle, les lecteurs ne sont pas bloqués par les écrivains et vice-versa grâce au mécanisme de multiversioning. Par contre un écrivain sera bloqué par un autre écrivain s'il veulent modifier la même ligne dans la même table.
Les verrous sont libérès au COMMIT ou ROLLBACK et débloquent une transaction en attente sur un des verrous, le cas échéant.
Les deadlocks sont automatiquement détectés et provoquent une erreur spécifique ORA-00060 avec une fichier trace côté serveur qui donnent les détails ce qui s'est passé. En cas de deadlock, une des instructions SQL qui a provoqué le deadlock est annulée mais la transaction n'est pas annulée
On peut noter l'option NOWAIT de la clause SELECT FOR UPDATE qui permet de spécifier: si le verrou est déjà pris par quelqu'un d'autre, ne pas attendre la libération du verrou: dans ce cas, le code appelant reçoit immédiatement l'erreur ORA-00054.
Je ne crois pas qu'il y a du paramètrage pour le verrouillage des lignes dans les tables.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager