Valider des données sur l'Abonné

Cette rubrique décrit comment valider les données sur l'abonné dans SQL Server 2012 à l'aide de SQL Server Management Studio, de Transact-SQL ou des objets RMO (Replication Management Objects).

La validation des données est en processus comptant trois parties :

  1. Un abonnement unique ou tous les abonnements à une publication sont marqués pour la validation. Marquez des abonnements pour validation dans les boîtes de dialogue Valider l'abonnement, Valider les abonnements et Valider tous les abonnements, disponibles dans les dossiers Publications locales et Abonnements locaux de Microsoft SQL Server Management Studio. Vous pouvez aussi marquer des abonnements à partir de l'onglet Tous les abonnements, de l'onglet Liste de suivi des abonnements et du nœud des publications dans le Moniteur de réplication. Pour des informations sur le démarrage du Moniteur de réplication, consultez Démarrer le Moniteur de réplication.

  2. Un abonnement est validé lors de sa prochaine synchronisation par l'Agent de distribution (réplication transactionnelle) ou l'Agent de fusion (réplication de fusion). L'Agent de distribution s'exécute généralement en continu, auquel cas la validation se produit immédiatement ; l'Agent de fusion s'exécute généralement à la demande, auquel cas la validation se produit après l'exécution de l'agent.

  3. Affichez les résultats de la validation :

    • dans la fenêtre détaillée du moniteur de réplication : sous l'onglet Historique du serveur de distribution vers l'Abonné pour la réplication transactionnelle et l'onglet Historique de synchronisation pour la réplication de fusion ;

    • dans la boîte de dialogue Afficher l'état de synchronisation de Management Studio.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

  • Pour valider les données sur l'abonné, à l'aide de :

    SQL Server Management Studio

    Transact-SQL

    Objets RMO (Replication Management Objects)

Avant de commencer

Limitations et restrictions

  • Les procédures du moniteur de réplication concernent uniquement les abonnements par envoi de données (push) car ce type d'abonnement ne peut pas être synchronisé dans le moniteur de réplication. Vous pouvez toutefois marquer un abonnement pour validation et afficher les résultats de la validation pour les abonnements par extraction de données (pull) dans le moniteur de réplication.

  • Les résultats de la validation indiquent si la validation a échoué ou a raté, mais ne précisent pas les lignes défectueuses en cas d'échec. Pour comparer des données sur le serveur de publication et sur l'Abonné, utilisez l'Utilitaire tablediff. Pour plus d'informations sur l'utilisation de cet utilitaire avec des données répliquées, consultez Comparer des tables répliquées pour identifier les différences (programmation de réplication).

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour valider les données des abonnements à une publication transactionnelle (Management Studio)

  1. Connectez-vous au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.

  2. Développez le dossier Réplication, puis le dossier Publications locales.

  3. Cliquez avec le bouton droit sur la publication dont vous souhaitez valider les abonnements, puis cliquez sur Valider les abonnements.

  4. Dans la boîte de dialogue Valider les abonnements, sélectionnez les abonnements à valider :

    • Sélectionnez Valider tous les abonnements SQL Server.

    • Sélectionnez Valider les abonnements suivants, puis sélectionnez un ou plusieurs abonnements.

  5. Pour spécifier le type de validation à effectuer (nombre de lignes, ou nombre de lignes et somme de contrôle), cliquez sur Options de validation, puis spécifiez les options dans la boîte de dialogue Options de validation d'abonnement.

  6. Cliquez sur OK.

  7. Affichez les résultats de la validation dans le moniteur de réplication ou dans la boîte de dialogue Afficher l'état de synchronisation. Pour chaque abonnement :

    1. Développez la publication, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher l'état de synchronisation.

    2. Si l'agent n'est pas en cours d'exécution, cliquez sur Démarrer dans la boîte de dialogue Afficher l'état de synchronisation. La boîte de dialogue affiche des messages d'information concernant la validation.

    Si aucun message concernant la validation ne s'affiche, l'agent a déjà consigné un message à ce sujet dans le journal. Dans ce cas, affichez les résultats de la validation dans le moniteur de réplication. Pour plus d'informations, consultez les procédures du moniteur de réplication dans cette rubrique.

Pour valider les données d'un abonnement unique à une publication transactionnelle (Management Studio)

  1. Connectez-vous au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.

  2. Développez le dossier Réplication, puis le dossier Publications locales.

  3. Développez la publication dont vous souhaitez valider les abonnements, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Valider l'abonnement.

  4. Dans la boîte de dialogue Valider l'abonnement, sélectionnez Valider cet abonnement.

  5. Pour spécifier le type de validation à effectuer (nombre de lignes, ou nombre de lignes et somme de contrôle), cliquez sur Options, puis spécifiez les options dans la boîte de dialogue Options de validation d'abonnement.

  6. Cliquez sur OK.

  7. Affichez les résultats de la validation dans le moniteur de réplication ou dans la boîte de dialogue Afficher l'état de synchronisation :

    1. Développez la publication, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher l'état de synchronisation.

    2. Si l'agent n'est pas en cours d'exécution, cliquez sur Démarrer dans la boîte de dialogue Afficher l'état de synchronisation. La boîte de dialogue affiche des messages d'information concernant la validation.

    Si aucun message concernant la validation ne s'affiche, l'agent a déjà consigné un message à ce sujet dans le journal. Dans ce cas, affichez les résultats de la validation dans le moniteur de réplication. Pour plus d'informations, consultez les procédures du moniteur de réplication dans cette rubrique.

Pour valider les données de tous les abonnements à une publication transactionnelle (Management Studio)

  1. Connectez-vous au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.

  2. Développez le dossier Réplication, puis le dossier Publications locales.

  3. Cliquez avec le bouton droit sur la publication dont vous souhaitez valider les abonnements, puis cliquez sur Valider tous les abonnements.

  4. Dans la boîte de dialogue Valider tous les abonnements, spécifiez le type de validation à effectuer (nombre de lignes, ou nombre de lignes et total de contrôle).

  5. Cliquez sur OK.

  6. Affichez les résultats de la validation dans le moniteur de réplication ou dans la boîte de dialogue Afficher l'état de synchronisation. Pour chaque abonnement :

    1. Développez la publication, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher l'état de synchronisation.

    2. Si l'agent n'est pas en cours d'exécution, cliquez sur Démarrer dans la boîte de dialogue Afficher l'état de synchronisation. La boîte de dialogue affiche des messages d'information concernant la validation.

    Si aucun message concernant la validation ne s'affiche, l'agent a déjà consigné un message à ce sujet dans le journal. Dans ce cas, affichez les résultats de la validation dans le moniteur de réplication. Pour plus d'informations, consultez les procédures du moniteur de réplication dans cette rubrique.

Pour valider les données de tous les abonnements par envoi de données à une publication transactionnelle (moniteur de réplication)

  1. Dans le moniteur de réplication, développez un groupe du serveur de publication dans le volet gauche, puis développez un serveur de publication.

  2. Cliquez avec le bouton droit sur la publication dont vous souhaitez valider les abonnements, puis cliquez sur Valider les abonnements.

  3. Dans la boîte de dialogue Valider les abonnements, sélectionnez les abonnements à valider :

    • Sélectionnez Valider tous les abonnements SQL Server.

    • Sélectionnez Valider les abonnements suivants, puis sélectionnez un ou plusieurs abonnements.

  4. Pour spécifier le type de validation à effectuer (nombre de lignes, ou nombre de lignes et somme de contrôle), cliquez sur Options de validation, puis spécifiez les options dans la boîte de dialogue Options de validation d'abonnement.

  5. Cliquez sur OK.

  6. Cliquez sur l'onglet Tous les abonnements.

  7. Affichez les résultats de la validation. Pour chaque abonnement par envoi de données :

    1. Si l'agent n'est pas en cours d'exécution, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Démarrer la synchronisation.

    2. Cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher les détails.

    3. Affichez les informations dans l'onglet Historique du serveur de distribution vers l'Abonné de la zone de texte Actions dans la session sélectionnée.

Pour valider les données d'un abonnement unique par envoi de données à une publication de fusion (moniteur de réplication)

  1. Dans le moniteur de réplication, développez un groupe du serveur de publication dans le volet gauche, développez un serveur de publication, puis cliquez sur une publication.

  2. Cliquez sur l'onglet Tous les abonnements.

  3. Cliquez avec le bouton droit sur l'abonnement que vous souhaitez valider, puis cliquez sur Valider l'abonnement.

  4. Dans la boîte de dialogue Valider l'abonnement, sélectionnez Valider cet abonnement.

  5. Pour spécifier le type de validation à effectuer (nombre de lignes, ou nombre de lignes et somme de contrôle), cliquez sur Options, puis spécifiez les options dans la boîte de dialogue Options de validation d'abonnement.

  6. Cliquez sur OK.

  7. Cliquez sur l'onglet Tous les abonnements.

  8. Affichez les résultats de la validation :

    1. Si l'agent n'est pas en cours d'exécution, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Démarrer la synchronisation.

    2. Cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher les détails.

    3. Affichez les informations dans l'onglet Historique de synchronisation de la zone de texte Dernier message de la session sélectionnée.

Pour valider les données de tous les abonnements par envoi de données à une publication de fusion (moniteur de réplication)

  1. Dans le moniteur de réplication, développez un groupe du serveur de publication dans le volet gauche, puis développez un serveur de publication.

  2. Cliquez avec le bouton droit sur la publication dont vous souhaitez valider les abonnements, puis cliquez sur Valider tous les abonnements.

  3. Dans la boîte de dialogue Valider tous les abonnements, spécifiez le type de validation à effectuer (nombre de lignes, ou nombre de lignes et total de contrôle).

  4. Cliquez sur OK.

  5. Cliquez sur l'onglet Tous les abonnements.

  6. Affichez les résultats de la validation. Pour chaque abonnement par envoi de données :

    1. Si l'agent n'est pas en cours d'exécution, cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Démarrer la synchronisation.

    2. Cliquez avec le bouton droit sur l'abonnement, puis cliquez sur Afficher les détails.

    3. Affichez les informations dans l'onglet Historique de synchronisation de la zone de texte Dernier message de la session sélectionnée.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour valider les données de tous les articles d'une publication transactionnelle

  1. Dans la base de données de publication du serveur de publication, exécutez sp_publication_validation (Transact-SQL). Spécifiez @publication et l'une des valeurs suivantes pour @rowcount_only :

    • 1 - contrôle du nombre de lignes uniquement (par défaut)

    • 2 - nombre de lignes et somme de contrôle binaire.

    [!REMARQUE]

    Lorsque vous exécutez sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) est exécuté pour chaque article de la publication. Pour exécuter sp_publication_validation (Transact-SQL)avec succès, vous devez avoir les autorisations SELECT sur toutes les colonnes des tables de la base publiée.

  2. (Facultatif) Démarrez l'Agent de distribution pour chaque abonnement s'il n'est pas déjà en cours d'exécution. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push).

  3. Vérifiez la sortie de l'agent pour le résultat de la validation. Pour plus d'informations, consultez Valider des données répliquées.

Pour valider les données d'un seul article d'une publication transactionnelle

  1. Dans la base de données de publication du serveur de publication, exécutez sp_article_validation (Transact-SQL). Spécifiez @publication, le nom de l'article pour @article et l'une des valeurs suivantes pour @rowcount_only :

    • 1 - contrôle du nombre de lignes uniquement (par défaut)

    • 2 - nombre de lignes et somme de contrôle binaire.

    [!REMARQUE]

    Pour exécuter sp_article_validation (Transact-SQL)avec succès, vous devez avoir les autorisations SELECT sur toutes les colonnes de la table de la base publiée.

  2. (Facultatif) Démarrez l'Agent de distribution pour chaque abonnement s'il n'est pas déjà en cours d'exécution. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push).

  3. Vérifiez la sortie de l'agent pour le résultat de la validation. Pour plus d'informations, consultez Valider des données répliquées.

Pour valider les données d'un seul abonné d'une publication transactionnelle

  1. Sur la base de données de publication du serveur de publication, ouvrez une transaction explicite à l'aide de BEGIN TRANSACTION (Transact-SQL).

  2. Dans la base de données de publication du serveur de publication, exécutez sp_marksubscriptionvalidation (Transact-SQL). Spécifiez la publication pour @publication, le nom de l'Abonné pour @subscriber et le nom de la base de données d'abonnement pour @destination_db.

  3. (Facultatif) Répétez l'étape 2 pour chaque abonnement en cours de validation.

  4. Dans la base de données de publication du serveur de publication, exécutez sp_article_validation (Transact-SQL). Spécifiez @publication, le nom de l'article pour @article et l'une des valeurs suivantes pour @rowcount_only :

    • 1 - contrôle du nombre de lignes uniquement (par défaut)

    • 2 - nombre de lignes et somme de contrôle binaire.

    [!REMARQUE]

    Pour exécuter sp_article_validation (Transact-SQL)avec succès, vous devez avoir les autorisations SELECT sur toutes les colonnes de la table de la base publiée.

  5. Sur la base de données de publication du serveur de publication, validez la transaction à l'aide de COMMIT TRANSACTION (Transact-SQL).

  6. (Facultatif) Répétez les étapes 1 à 5 pour chaque article en cours de validation.

  7. (Facultatif) Démarrez l'Agent de distribution s'il n'est pas déjà en cours d'exécution. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push).

  8. Vérifiez la sortie de l'agent pour le résultat de la validation. Pour plus d'informations, consultez Valider des données sur l'Abonné.

Pour valider les données de tous les abonnements à une publication de fusion

  1. Dans la base de données de publication du serveur de publication, exécutez sp_validatemergepublication (Transact-SQL). Spécifiez @publication et l'une des valeurs suivantes pour @level :

    • 1 - validation du nombre de lignes uniquement.

    • 3 - validation de la somme de contrôle binaire du nombre de lignes.

    Tous les abonnements sont ainsi marqués pour la validation.

  2. Démarrez l'agent de fusion pour chaque abonnement. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push).

  3. Vérifiez la sortie de l'agent pour le résultat de la validation. Pour plus d'informations, consultez Valider des données sur l'Abonné.

Pour valider les données des abonnements sélectionnés à une publication de fusion

  1. Dans la base de données de publication du serveur de publication, exécutez sp_validatemergesubscription (Transact-SQL). Specify @publication, le nom de l'Abonné pour @subscriber, le nom de la base de données d'abonnement pour @subscriber_db et l'une des valeurs suivantes pour @level :

    • 1 - validation du nombre de lignes uniquement.

    • 3 - validation de la somme de contrôle binaire du nombre de lignes.

    Les abonnements sélectionnés sont ainsi marqués pour la validation.

  2. Démarrez l'agent de fusion pour chaque abonnement. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push).

  3. Vérifiez la sortie de l'agent pour le résultat de la validation.

  4. Répétez les étapes 1 à 3 pour chaque abonnement en cours de validation.

[!REMARQUE]

Un abonnement à une publication de fusion peut également être validé à la fin d'une synchronisation en spécifiant le paramètre -Validate lors de l'exécution de l'Agent de fusion de réplication.

Pour valider les données d'un abonnement à l'aide de paramètres de l'Agent de fusion

  • Démarrez l'Agent de fusion sur l'Abonné (abonnement par extraction) ou sur le serveur de distribution (abonnement par émission de données) à partir de l'invite de commandes de l'une des façons suivantes.

    • Spécifiez une valeur de 1 (nombre de lignes) ou 3 (nombre de lignes et somme de contrôle de binaire) pour le paramètre -Validate.

    • Spécifiez la validation du nombre de lignes ou le nombre de lignes et la validation de la somme de contrôle pour le paramètre -ProfileName.

    Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) ou Synchroniser un abonnement par émission (push).

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation d'objets RMO (Replication Management Objects)

La réplication permet d'utiliser les objets RMO (Replication Management Objects) pour vérifier par programmation que les données de l'Abonné correspondent à celles du serveur de publication. Les objets que vous utilisez dépendent du type de topologie de réplication. La réplication transactionnelle requiert la validation de tous les abonnements à une publication.

[!REMARQUE]

Consultez l'Exemple (RMO) plus loin dans cette rubrique.

Pour valider les données de tous les articles d'une publication transactionnelle

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe TransPublication. Définissez les propriétés Name et DatabaseName de la publication. Définissez la propriété ConnectionContext en spécifiant la connexion créée à l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés restantes de l'objet. Si cette méthode retourne false, soit les propriétés de la publication ont été définies de manière incorrecte à l'étape 2, soit la publication n'existe pas.

  4. Appelez la méthode ValidatePublication. Passez les éléments suivants :

    Cela marque les articles pour la validation.

  5. S'il n'est pas déjà en cours d'exécution, démarrez l'Agent de distribution pour synchroniser chaque abonnement. Pour plus d'informations, consultez Synchroniser un abonnement par émission (push) ou Synchroniser un abonnement par extraction (pull). Le résultat de l'opération de validation est écrit dans l'historique de l'agent. Pour plus d'informations, consultez Surveillance de la réplication.

Pour valider les données de tous les abonnements à une publication de fusion

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe MergePublication. Définissez les propriétés Name et DatabaseName de la publication. Définissez la propriété ConnectionContext en spécifiant la connexion créée à l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés restantes de l'objet. Si cette méthode retourne false, soit les propriétés de la publication ont été définies de manière incorrecte à l'étape 2, soit la publication n'existe pas.

  4. Appelez la méthode ValidatePublication. Passez le ValidationOption souhaité.

  5. Exécutez l'Agent de fusion pour chaque abonnement pour démarrer la validation ou attendez que l'agent planifié suivant ne s'exécute. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push). Le résultat de l'opération de validation est écrit dans l'historique de l'agent, que vous affichez en utilisant le moniteur de réplication. Pour plus d'informations, consultez Surveillance de la réplication.

Pour valider les données d'un seul abonnement à une publication de fusion

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe MergePublication. Définissez les propriétés Name et DatabaseName de la publication. Définissez la propriété ConnectionContext en spécifiant la connexion créée à l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés restantes de l'objet. Si cette méthode retourne false, soit les propriétés de la publication ont été définies de manière incorrecte à l'étape 2, soit la publication n'existe pas.

  4. Appelez la méthode ValidateSubscription. Passez le nom de l'Abonné et de la base de données d'abonnement en cours de validation, ainsi que le ValidationOption souhaité.

  5. Exécutez l'Agent de fusion de l'abonnement pour démarrer la validation ou attendez que l'agent planifié suivant ne s'exécute. Pour plus d'informations, consultez Synchroniser un abonnement par extraction (pull) et Synchroniser un abonnement par émission (push). Le résultat de l'opération de validation est écrit dans l'historique de l'agent, que vous affichez en utilisant le moniteur de réplication. Pour plus d'informations, consultez Surveillance de la réplication.

Exemple (RMO)

Cet exemple marque tous les abonnements à une publication transactionnelle pour une validation du nombre de lignes.

            // Define the server, database, and publication names
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksProductTran";
            string publicationDbName = "AdventureWorks2012";

            TransPublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the publication.
                publication = new TransPublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // If we can't get the properties for this publication, 
                // throw an application exception.
                if (publication.LoadProperties())
                {
                    // Initiate validataion for all subscriptions to this publication.
                    publication.ValidatePublication(ValidationOption.RowCountOnly,
                        ValidationMethod.ConditionalFast, false);

                    // If not already running, start the Distribution Agent at each 
                    // Subscriber to synchronize and validate the subscriptions.
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Settings could not be retrieved for the publication. " +
                        "Ensure that the publication {0} exists on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(
                    "Subscription validation could not be initiated.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

Cet exemple marque un abonnement spécifique à une publication de fusion pour une validation du nombre de lignes.

            // Define the server, database, and publication names
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";
            string subscriberName = subscriberInstance;
            string subscriptionDbName = "AdventureWorks2012Replica";

            MergePublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the publication.
                publication = new MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;


                // If we can't get the properties for this merge publication, then throw an application exception.
                if (publication.LoadProperties())
                {
                    // Initiate validation of the specified subscription.
                    publication.ValidateSubscription(subscriberName,
                        subscriptionDbName, ValidationOption.RowCountOnly);
                    
                    // Start the Merge Agent to synchronize and validate the subscription.
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Settings could not be retrieved for the publication. " +
                        "Ensure that the publication {0} exists on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(String.Format(
                    "The subscription at {0} to the {1} publication could not " +
                    "be validated.", subscriberName, publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"

Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName, _
         subscriptionDbName, ValidationOption.RowCountOnly)

        ' Start the Merge Agent to synchronize and validate the subscription.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The subscription at {0} to the {1} publication could not " + _
     "be validated.", subscriberName, publicationName), ex)
Finally
    conn.Disconnect()
End Try

Icône de flèche utilisée avec le lien Retour en haut[Top]