Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2007, 08h22   #1
Invité de passage
 
Inscription : juin 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 2
Points : 0
Points : 0
Par défaut Problème de Dead Lock

Bonjour tous le monde,

Je suis en train de tester MySQL pour son support des transactions avec les tables InnoDB et j'ai une petite question.
J'ai fait un petit programme qui tourne sur deux machines et qui se connecte sur une DB MySQL, je fais un SELECT ... FOR UPDATE sur une table
et retire le cable réseau de la machine. Lorsque le prochain user tente un SELECT ... FOR UPDATE il est bloqué, il n'y a jamais
de rollback sur ma transaction. Est-ce que quelqu'un sait ce qu'il faut configurer dans la DB pour ne pas rester dans ce dead lock? Quelqu'un a-t-il déjà fait ce test et est-il satisfait du résultat? Je me connecte avec ODBC.

merci,

Chromium.
Chromium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 09h15   #2
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Cela doit dépendre de divers timeout, à commencer par celui qui indique à partir de quand la connexion est considérée comme morte.

Les variables innodb_lock_wait_timeout et connect_timeout ont l'air intéressantes.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 15h59   #3
Invité de passage
 
Inscription : juin 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par Sivrît
Cela doit dépendre de divers timeout, à commencer par celui qui indique à partir de quand la connexion est considérée comme morte.

Les variables innodb_lock_wait_timeout et connect_timeout ont l'air intéressantes.
Merci pour ta réponse Sivrît

J'ai déjà testé innodb_lock_wait_timeout il n'arrête pas la transaction responsable du dead lock mais seulement celle qui est en attente sur la row qui a été verrouillé (et dont la connection réseau a été interrompue). Il existe une option dans le clustering qui permet de mettre un timeout sur une transaction en cours, par exemple s'il n'y a pas eu de commit avant 5 secondes à partir de ton Begin Transaction, Mysql Annule tout simplement la transaction. C'est ce que je recherche mais sans dévoir installer la gestion des Clusters.

J'ai aussi regarder connect_timeout, mais il ne me sert à rien.

Chromium.
Chromium est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h28.


 
 
 
 
Partenaires

Hébergement Web