Partager via


Détection et résolution des conflits de réplication

Quand une synchronisation a lieu après la synchronisation initiale, les modifications apportées aux données sur un Abonné peuvent être en conflit avec des modifications effectuées par un autre Abonné ou sur le serveur de publication. Quand vous créez la publication, vous affectez un résolveur à la gestion de ces conflits.

Détection des conflits

Quand la synchronisation a lieu, l'Agent de fusion qui s'exécute sur le serveur de publication détecte tous les conflits de données, puis il détermine quelles sont les données acceptées et propagées vers les autres sites sur la base du résolveur associé à la publication.

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) prend en charge le suivi de niveau ligne et de niveau colonne lors de la synchronisation avec des serveurs de publication SQL Server 2005. Pour la synchronisation avec des serveurs de publication SQL Server 2000, SQL Server Compact Edition prend en charge seulement le suivi de niveau ligne.

Suivi de niveau ligne dans SQL Server Compact Edition

Lors de la synchronisation avec un serveur de publication SQL Server 2000, le moteur de base de données SQL Server Compact Edition fait appel à la fonction de suivi quand une ligne est insérée, mise à jour ou supprimée. Quand des conflits sont détectés au niveau ligne, les modifications apportées aux lignes correspondantes sont considérées comme étant un conflit, que les modifications aient été effectuées ou non sur la même colonne. Par exemple, supposons qu'une modification est apportée à la colonne Adresse sur une ligne du serveur de publication, et qu'une autre modification est effectuée sur la colonne Numéro de téléphone de la ligne correspondante sur l'Abonné. Avec le suivi de niveau ligne, un conflit est détecté, parce que des modifications ont été faites sur la même ligne.

Remarque :
Même si le serveur de publication SQL Server 2000 est configuré avec le suivi de niveau colonne, SQL Server Compact Edition marque la ligne comme si toutes les colonnes avaient été modifiées. Le suivi de niveau colonne est pris en charge seulement avec des serveurs de publication SQL Server 2005.

Utilisation des résolveurs

Quand un conflit a été détecté, l'Agent de fusion lance le résolveur de conflits qui est sélectionné pour l'article. Il peut s'agit du résolveur par défaut, de l'un des autres résolveurs fournis ou d'un résolveur personnalisé. Les modifications acceptées sont choisies conformément aux règles du résolveur de conflits. Les conflits d'un Abonné SQL Server Compact Edition sont toujours détectés, résolus et consignés au niveau du serveur de publication.

Important :
L'accès multi-utilisateur permet maintenant les modifications des données pendant la synchronisation. Ces modifications peuvent provoquer un conflit du côté client. Les conflits du côté client sont détectés au niveau de l'Abonné, mais il n'y sont pas résolus. Le conflit sera à nouveau détecté et résolu au niveau du serveur de publication au cours de la synchronisation suivante. Pour plus d'informations, consultez Accès multi-utilisateur et synchronisation.

Pour résoudre les conflits, les résolveurs peuvent utiliser la source de la modification des données, ou bien la valeur de priorité du serveur de publication. Par exemple, le résolveur par défaut suit la règle selon laquelle les modifications effectuées sur le serveur de publication remplacent toujours celles qui ont eu lieu sur l'Abonné. Vous pouvez opter pour un autre résolveur qui va toujours accorder la priorité aux modifications effectuées sur l'Abonné.

Remarque :
Les clients SQL Server Compact Edition ont toujours une valeur de priorité de 0. Par conséquent, un résolveur basé sur la valeur de priorité ne donne jamais la priorité aux modifications effectuées sur l'appareil.

Pour plus d'informations sur la détection et la résolution des conflits, consultez « Détection et résolution des conflits de réplication de fusion » dans la documentation en ligne de SQL Server.

Remarque :
Les résolveurs de conflits de fusion basés sur des procédures stockées ne sont pas pris en charge par les abonnements SQL Server Compact Edition.

Utilisation de résolveurs personnalisés

Les résolveurs personnalisés permettent d'ajouter une logique d'entreprise à la réplication. Un résolveur personnalisé est une DLL créée en code managé ou natif. Pour qu'il soit utilisable, le résolveur personnalisé doit être inscrit sur le serveur de publication et sur le serveur exécutant IIS au moyen de la procédure stockée sp_registercustomeresolver. La procédure stockée sp_registercustomeresolver inclut le paramètre is_dotnet_assembly , que vous définissez à « true » pour un résolveur créé en code managé ou à « false » pour une DLL native.

Important   Un résolveur personnalisé doit être inscrit sur l'ordinateur qui exécute IIS et aussi sur l'ordinateur qui exécute SQL Server.

Voir aussi

Aide et information

Assistance sur SQL Server Compact Edition