Vous n'êtes pas identifié(e).
Pages : 1
Bonjour.
Je rencontre des problèmes de timeout sur mes deadlocks lors d'une insertion massive de données (visiblement parce que le trigger en cours n'a pas terminé son travail) :
********************************************************************************
Message : ERROR: deadlock detected
Detail: Process 17067 waits for ShareLock on transaction 304743; blocked by process 17058.
Process 17058 waits for ShareLock on transaction 304747; blocked by process 17067.
Hint: See server log for query details.
Where: while locking tuple (59,65) in relation "intervention"
J'ai donc souhaité modifier ma valeur max de deadlock_timeout dans le pg_hba.conf mais je vois que la valeur n'est pas renseignée (par conséquent j'en déduis que la valeur s'adapte au besoin) :
Nom deadlock_timeout
Valeurs
Valeurs autorisées 1-2147483647
Adaptabilité true
Source engine-default
Type d'application dynamic
Type de données integer
Description (ms) Sets the time to wait on a lock before checking for deadlock.
Qu'est ce qui pourrait être à l'origine du problème ? Faut-il que je renseigne une valeur ?
Hors ligne
Ce paramètre a forcément une valeur, sa valeur par défaut, qui est de 1 seconde. Il n'y a aucune raison de modifier ce paramètre à ma connaissance.
Si vous avez des deadlocks, c'est que deux sessions se bloquent mutuellement. Ceci survient généralement quand le verrouillage des objets ou des lignes se font dans des ordres différents suivant les sessions. C'est souvent complexe à corriger et le pire c'est qu'on ne pourra pas beaucoup aider vu que le problème est dans l'applicatif sur sa façon d'accéder aux objets.
Guillaume.
Hors ligne
D'accord merci, ça répond à une bonne partie de ma question :-)
Hors ligne
Pages : 1