Partager via


Validation des informations de partition pour un Abonné de fusion

Quand vous définissez un filtrage des lignes paramétrable pour une publication de fusion, vous utilisez une fonction qui référence des informations de l'Abonné, telles que son nom de connexion. Par défaut, la réplication valide les informations de l'Abonné sur la base de cette fonction avant chaque synchronisation et si une capture instantanée est appliquée à l'Abonné. Le processus de validation vérifie que ces données sont partitionnées correctement pour chaque Abonné. Le fonctionnement de la validation est contrôlé par la propriété de publication validate_subscriber_info, qui peut être modifiée à l'aide de sp_changemergepublication (Transact-SQL) ou sur la page Options d'abonnement de la boîte de dialogue Propriétés de la publication. Pour plus d'informations sur la modification des propriétés d'une publication, consultez Procédure : afficher et modifier les propriétés de publications (programmation Transact-SQL de la réplication) et Procédure : Affichage et modification des propriétés de l'article et de la publication (SQL Server Management Studio).

Fonctionnement de la validation de partition

Lorsqu'une publication est filtrée par exemple à l'aide de la fonction SUSER_SNAME(), l'Agent de fusion applique la capture instantanée initiale à chaque Abonné en fonction des données qui sont valides pour l'expression SUSER_SNAME().

Si la validation est activée, quand l'Abonné se reconnecte au serveur de publication pour la synchronisation suivante, l'Agent de fusion valide les informations sur l'Abonné et vérifie que la partition de chaque Abonné est la même que celle reçue dans la capture instantanée initiale. Pour chaque application de fusion ou de capture instantanée suivante, l'Agent de fusion valide la partition de chaque abonné.

Si l'Agent de fusion détecte que la fonction utilisée dans l'expression de filtrage renvoie une valeur différente de celle qu'elle a renvoyée lors de la capture instantanée initiale, l'application de fusion ou de capture instantanée échoue, et l'abonnement de cet Abonné peut nécessiter une réinitialisation. La réinitialisation peut être nécessaire pour empêcher des problèmes qui peuvent survenir si les paramètres de fusion d'un Abonné ont changé, mais elle peut être suffisante pour ramener les informations sur l'Abonné, par exemple le nom de connexion, à la valeur utilisée au moment de la capture instantanée originale.

Quand l'Agent de fusion valide une partition, en plus de valider la partition relativement aux valeurs renvoyées par toutes les fonctions utilisées dans les expressions de filtrage, l'agent vérifie également si la capture instantanée a été générée avant des modifications qui l'invalident, par exemple des opérations de nettoyage des métadonnées ou des modifications de schéma. Si une capture instantanée partitionnée est trop ancienne, l'Agent de fusion renvoie une erreur et vous devez régénérer une capture instantanée partitionnée pour cet Abonné sur la base d'une capture instantanée normale en cours.