|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2007 Messages : 43 ![]() |
Bonjour à tous,
Je travaille sur une application redondée, avec 2 serveurs. Sur chacun des serveurs se trouve un base de données, et le but est de répliquer la base du serveur actif (qui se rempli régulièrement), sur le serveur passif. Pour cela, les bases contiennent deux tables, qu'on appelera A et B. En fait, B contient exactement les mêmes champs que A, avec en plus un champ "A répliquer". Il y a un trigger sur A, qui fait en sorte que dès qu'il y a une entrée, on la copie dans B, avec le champ "A répliquer" à 1. Le serveur passif a pour but de régulièrement lire la table B du serveur actif, et de recopier dans sa table A toutes les entrées de la table B qui ont le champ "A répliquer" à 1. Pour cela, une transaction est utilisée ainsi (sur le serveur passif) : Debut Transaction On recupère les lignes de la table B du serveur actif avec le champ "A répliquer" à 1 On les écris localement sur la table A On met le champ "A répliquer" à 0 des lignes répliquées de la table B du serveur actif Fin Transaction Cela fonctionne la plupart du temps, mais de temps en temps, je tombe sur un deadlock : Code :
J'espère avoir été assez clair, et merci pour votre aide. |
||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 43 ![]() |
Petite info supplémentaire : j'observe le deadlock dans les logs du serveur passif, c'est à dire pendant la Transaction qui sert à répliquer.
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2006 Messages : 172 ![]() |
Modifie la transaction comme suit:
Debut Transaction On recupère les lignes de la table B du serveur actif avec le champ "A répliquer" à 1 On les écris localement sur la table A Fin Transaction donne uniquement la possibilité à ton trigger de mettre "A Reppliquer" à 1. ok? ton trigger et les operations effectuées dans ta transaction sont à l'origine du deadlock. Tiens nous au courant!
__________________
Vive les bug! Ils font découvrir beaucoup de choses. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
il faudrait aussi connaitre quels types de transactions sont utilisées
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Olivier MuetResponsable de service informatique Inscription : septembre 2003 Messages : 222 ![]() |
...et peut-être accroître légèrement le temps de déclenchement du deadlock.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com