OVH Cloud OVH Cloud

Conflit de réplication fusionnelle injustifié

2 réponses
Avatar
Nicolas F
Bonjour à tous,

Configuration du système: 2 serveurs Windows 2000 SP4 avec SQL server 2000
SP4 en LAN.Une réplication fusionnelle est mise en place entre ces 2
serveurs.Des données sont insérées dans le serveur A.

Voici le problème que nous rencontrons:
Sur le 1er serveur que nous appelerons Serveur A Nous disposons d'une table
1 avec une PK clé_table1. Nous avons une table 2 avec une FK sur clé_table1.
Nous insérons des données dans ces tables en respectant l'ordre table1 puis
table 2.L'insertion se passe correctement.
Lors de la réplication fusionnelle, il arrive parfois que des conflits
soient remontés à propos des enregistrements de la table 2 expliquant que
la clé_table1 n'existe pas(contrainte d'intégrité sur la FK).
A l'arrivée, nous perdons donc les données dans la table 2 sur les 2
serveurs et pourtant la ligne dans la table 1 est correctement répliquée.
Nous avons l'impression que la réplication fusionnelle effectue des
insertions d'abord sur la table2 et ensuite sur la table1(ce qui
expliquerait le message de contrainte d'intégrité).
Comment ceci est possible? Est-il possible d'imposer un ordre de réplication
des tables?

Merci de nous éclairer de vos lumières

Nicolas.

2 réponses

Avatar
Med Bouchenafa
Il faut créer toutes les contraintes avec l'option NOT FOR REPLICATION
Avec cette option SQL Server ne vérifie pas les contraintes lorsque les
données sont manipulées par les agents de réplication

--
Bien cordialement
Med Bouchenafa

"Nicolas F" a écrit dans le message de news:

Bonjour à tous,

Configuration du système: 2 serveurs Windows 2000 SP4 avec SQL server 2000
SP4 en LAN.Une réplication fusionnelle est mise en place entre ces 2
serveurs.Des données sont insérées dans le serveur A.

Voici le problème que nous rencontrons:
Sur le 1er serveur que nous appelerons Serveur A Nous disposons d'une
table
1 avec une PK clé_table1. Nous avons une table 2 avec une FK sur
clé_table1.
Nous insérons des données dans ces tables en respectant l'ordre table1
puis
table 2.L'insertion se passe correctement.
Lors de la réplication fusionnelle, il arrive parfois que des conflits
soient remontés à propos des enregistrements de la table 2 expliquant que
la clé_table1 n'existe pas(contrainte d'intégrité sur la FK).
A l'arrivée, nous perdons donc les données dans la table 2 sur les 2
serveurs et pourtant la ligne dans la table 1 est correctement répliquée.
Nous avons l'impression que la réplication fusionnelle effectue des
insertions d'abord sur la table2 et ensuite sur la table1(ce qui
expliquerait le message de contrainte d'intégrité).
Comment ceci est possible? Est-il possible d'imposer un ordre de
réplication
des tables?

Merci de nous éclairer de vos lumières

Nicolas.




Avatar
Nicolas F
Merci beaucoup ça fonctionne.

Nicolas

"Med Bouchenafa" a écrit dans le message de news:

Il faut créer toutes les contraintes avec l'option NOT FOR REPLICATION
Avec cette option SQL Server ne vérifie pas les contraintes lorsque les
données sont manipulées par les agents de réplication

--
Bien cordialement
Med Bouchenafa

"Nicolas F" a écrit dans le message de news:

> Bonjour à tous,
>
> Configuration du système: 2 serveurs Windows 2000 SP4 avec SQL server


2000
> SP4 en LAN.Une réplication fusionnelle est mise en place entre ces 2
> serveurs.Des données sont insérées dans le serveur A.
>
> Voici le problème que nous rencontrons:
> Sur le 1er serveur que nous appelerons Serveur A Nous disposons d'une
> table
> 1 avec une PK clé_table1. Nous avons une table 2 avec une FK sur
> clé_table1.
> Nous insérons des données dans ces tables en respectant l'ordre table1
> puis
> table 2.L'insertion se passe correctement.
> Lors de la réplication fusionnelle, il arrive parfois que des conflits
> soient remontés à propos des enregistrements de la table 2 expliquant


que
> la clé_table1 n'existe pas(contrainte d'intégrité sur la FK).
> A l'arrivée, nous perdons donc les données dans la table 2 sur les 2
> serveurs et pourtant la ligne dans la table 1 est correctement


répliquée.
> Nous avons l'impression que la réplication fusionnelle effectue des
> insertions d'abord sur la table2 et ensuite sur la table1(ce qui
> expliquerait le message de contrainte d'intégrité).
> Comment ceci est possible? Est-il possible d'imposer un ordre de
> réplication
> des tables?
>
> Merci de nous éclairer de vos lumières
>
> Nicolas.
>
>