Convalida dei dati nel Sottoscrittore

In questo argomento viene descritto come convalidare i dati nel Sottoscrittore in SQL Server 2012 tramite SQL Server Management Studio, Transact-SQL o RMO (Replication Management Objects).

La convalida dei dati è un processo suddiviso in tre parti:

  1. Una sottoscrizione o tutte le sottoscrizioni di una pubblicazione vengono contrassegnate per la convalida. Contrassegnare le sottoscrizioni per la convalida nelle finestre di dialogo Convalida sottoscrizione, Convalida sottoscrizioni e Convalida tutte le sottoscrizioni, disponibili dalle cartelle Pubblicazioni locali e Sottoscrizioni locali in Microsoft SQL Server Management Studio. È inoltre possibile contrassegnare le sottoscrizioni nella scheda Tutte le sottoscrizioni, nella scheda Elenco verifica sottoscrizioni e nel nodo delle pubblicazioni in Monitoraggio replica. Per informazioni sull'avvio di Monitoraggio replica, vedere Avvio di Monitoraggio replica.

  2. La sottoscrizione viene convalidata alla successiva sincronizzazione eseguita dall'agente di distribuzione, nel caso della replica transazionale, o dall'agente di merge nella replica di tipo merge. L'agente di distribuzione in genere viene eseguito in modo continuativo, pertanto la convalida viene eseguita immediatamente, mentre l'agente di merge in genere viene eseguito su richiesta, pertanto la convalida viene eseguita solo dopo l'esecuzione dell'agente.

  3. I risultati della convalida possono essere visualizzati nelle finestre seguenti:

    • Nella finestra dei dettagli in Monitoraggio replica, all'interno della scheda Cronologia database di distribuzione - Sottoscrittore per la replica transazionale e nella scheda Cronologia sincronizzazione per la replica di tipo merge.

    • Nella finestra di dialogo Visualizza stato sincronizzazione in Management Studio.

Contenuto dell'argomento

  • Prima di iniziare:

    Limitazioni e restrizioni

  • Per convalida i dati nel Sottoscrittore tramite:

    SQL Server Management Studio

    Transact-SQL

    Oggetti RMO (Replication Management Objects)

Prima di iniziare

Limitazioni e restrizioni

  • Le procedure relative a Monitoraggio replica riguardano solo le sottoscrizioni push in quanto le sottoscrizioni pull non possono essere sincronizzate in Monitoraggio replica. È tuttavia possibile contrassegnare una sottoscrizione per la convalida e visualizzare i risultati della convalida per le sottoscrizioni pull in Monitoraggio replica.

  • I risultati della convalida consentono di stabilire se la convalida è stata completata correttamente o meno, ma in caso di errore non indicano quali righe non hanno superato la convalida. Per confrontare i dati nel server di pubblicazione e nel Sottoscrittore, utilizzare la Utilità tablediff. Per ulteriori informazioni sull'utilizzo di questa utilità con i dati replicati, vedere Confronto di tabelle replicate al fine di individuare le differenze (programmazione della replica).

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per convalidare i dati per le sottoscrizioni di una pubblicazione transazionale (Management Studio)

  1. Connettersi al server di pubblicazione in SQL Server Management Studio e quindi espandere il nodo del server.

  2. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali.

  3. Fare clic con il pulsante destro del mouse sulla pubblicazione di cui si desidera convalidare le sottoscrizioni e quindi scegliere Convalida sottoscrizioni.

  4. Nella finestra di dialogo Convalida sottoscrizioni selezionare le sottoscrizioni da convalidare:

    • Selezionare Convalida tutte le sottoscrizioni SQL Server.

    • Selezionare Convalida le sottoscrizioni seguenti e quindi scegliere una o più sottoscrizioni.

  5. Per specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum), fare clic su Opzioni di convalida e quindi specificare le opzioni nella finestra di dialogo Opzioni di convalida delle sottoscrizioni.

  6. Fare clic su OK.

  7. I risultati della convalida possono essere visualizzati in Monitoraggio replica o nella finestra di dialogo Visualizza stato sincronizzazione. Eseguire la procedura seguente per ogni sottoscrizione:

    1. Espandere la pubblicazione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza stato sincronizzazione.

    2. Se l'agente non è in esecuzione, fare clic su Avvia nella finestra di dialogo Visualizza stato sincronizzazione. Nella finestra di dialogo verranno visualizzati messaggi informativi relativi alla convalida.

    Se non viene visualizzato alcun messaggio attinente, l'agente deve aver già registrato un messaggio successivo. In questo caso, visualizzare i risultati della convalida in Monitoraggio replica. Per ulteriori informazioni, vedere le procedure per Monitoraggio replica in questo argomento.

Per convalidare i dati di una singola sottoscrizione di una pubblicazione di tipo merge (Management Studio)

  1. Connettersi al server di pubblicazione in SQL Server Management Studio e quindi espandere il nodo del server.

  2. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali.

  3. Espandere la pubblicazione di cui si desidera convalidare le sottoscrizioni, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Convalida sottoscrizione.

  4. Nella finestra di dialogo Convalida sottoscrizione selezionare Convalida la sottoscrizione.

  5. Per specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum), fare clic su Opzioni e quindi specificare le opzioni nella finestra di dialogo Opzioni di convalida delle sottoscrizioni.

  6. Fare clic su OK.

  7. I risultati della convalida possono essere visualizzati in Monitoraggio replica o nella finestra di dialogo Visualizza stato sincronizzazione.

    1. Espandere la pubblicazione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza stato sincronizzazione.

    2. Se l'agente non è in esecuzione, fare clic su Avvia nella finestra di dialogo Visualizza stato sincronizzazione. Nella finestra di dialogo verranno visualizzati messaggi informativi relativi alla convalida.

    Se non viene visualizzato alcun messaggio attinente, l'agente deve aver già registrato un messaggio successivo. In questo caso, visualizzare i risultati della convalida in Monitoraggio replica. Per ulteriori informazioni, vedere le procedure per Monitoraggio replica in questo argomento.

Per convalidare i dati per tutte le sottoscrizioni di una pubblicazione di tipo merge (Management Studio)

  1. Connettersi al server di pubblicazione in SQL Server Management Studio e quindi espandere il nodo del server.

  2. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali.

  3. Fare clic con il pulsante destro del mouse sulla pubblicazione di cui si desidera convalidare le sottoscrizioni e quindi scegliere Convalida tutte le sottoscrizioni.

  4. Nella finestra di dialogo Convalida tutte le sottoscrizioni specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum).

  5. Fare clic su OK.

  6. I risultati della convalida possono essere visualizzati in Monitoraggio replica o nella finestra di dialogo Visualizza stato sincronizzazione. Eseguire la procedura seguente per ogni sottoscrizione:

    1. Espandere la pubblicazione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza stato sincronizzazione.

    2. Se l'agente non è in esecuzione, fare clic su Avvia nella finestra di dialogo Visualizza stato sincronizzazione. Nella finestra di dialogo verranno visualizzati messaggi informativi relativi alla convalida.

    Se non viene visualizzato alcun messaggio attinente, l'agente deve aver già registrato un messaggio successivo. In questo caso, visualizzare i risultati della convalida in Monitoraggio replica. Per ulteriori informazioni, vedere le procedure per Monitoraggio replica in questo argomento.

Per convalidare i dati per tutte le sottoscrizioni push di una pubblicazione transazionale (Monitoraggio replica)

  1. In Monitoraggio replica, espandere un gruppo di server di pubblicazione nel riquadro sinistro e quindi espandere un server di pubblicazione.

  2. Fare clic con il pulsante destro del mouse sulla pubblicazione di cui si desidera convalidare le sottoscrizioni e quindi scegliere Convalida sottoscrizioni.

  3. Nella finestra di dialogo Convalida sottoscrizioni selezionare le sottoscrizioni da convalidare:

    • Selezionare Convalida tutte le sottoscrizioni SQL Server.

    • Selezionare Convalida le sottoscrizioni seguenti e quindi scegliere una o più sottoscrizioni.

  4. Per specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum), fare clic su Opzioni di convalida e quindi specificare le opzioni nella finestra di dialogo Opzioni di convalida delle sottoscrizioni.

  5. Fare clic su OK.

  6. Fare clic sulla scheda Tutte le sottoscrizioni.

  7. Visualizzare i risultati della convalida. Eseguire la procedura seguente per ogni sottoscrizione push:

    1. Se l'agente non è in esecuzione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Avvia sincronizzazione.

    2. Fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza dettagli.

    3. Visualizzare le informazioni nella scheda Cronologia server di distribuzione - Sottoscrittore all'interno dell'area di testo Azioni nella sessione selezionata.

Per convalidare i dati di una singola sottoscrizione push di una pubblicazione di tipo merge (Monitoraggio replica)

  1. In Monitoraggio replica espandere un gruppo di server di pubblicazione nel riquadro sinistro, espandere un server di pubblicazione e quindi fare clic su una pubblicazione.

  2. Fare clic sulla scheda Tutte le sottoscrizioni.

  3. Fare clic con il pulsante destro del mouse sulla sottoscrizione che si desidera convalidare e quindi scegliere Convalida sottoscrizione.

  4. Nella finestra di dialogo Convalida sottoscrizione selezionare Convalida la sottoscrizione.

  5. Per specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum), fare clic su Opzioni e quindi specificare le opzioni nella finestra di dialogo Opzioni di convalida delle sottoscrizioni.

  6. Fare clic su OK.

  7. Fare clic sulla scheda Tutte le sottoscrizioni.

  8. Visualizzare i risultati della convalida:

    1. Se l'agente non è in esecuzione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Avvia sincronizzazione.

    2. Fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza dettagli.

    3. Visualizzare le informazioni nella scheda Cronologia sincronizzazione all'interno dell'area di testo Ultimo messaggio della sessione selezionata.

Per convalidare i dati per tutte le sottoscrizioni push di una pubblicazione di tipo merge (Monitoraggio replica)

  1. In Monitoraggio replica, espandere un gruppo di server di pubblicazione nel riquadro sinistro e quindi espandere un server di pubblicazione.

  2. Fare clic con il pulsante destro del mouse sulla pubblicazione di cui si desidera convalidare le sottoscrizioni e quindi scegliere Convalida tutte le sottoscrizioni.

  3. Nella finestra di dialogo Convalida tutte le sottoscrizioni specificare il tipo di convalida da eseguire (solo conteggio delle righe o conteggio delle righe e valori di checksum).

  4. Fare clic su OK.

  5. Fare clic sulla scheda Tutte le sottoscrizioni.

  6. Visualizzare i risultati della convalida. Eseguire la procedura seguente per ogni sottoscrizione push:

    1. Se l'agente non è in esecuzione, fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Avvia sincronizzazione.

    2. Fare clic con il pulsante destro del mouse sulla sottoscrizione e quindi scegliere Visualizza dettagli.

    3. Visualizzare le informazioni nella scheda Cronologia sincronizzazione all'interno dell'area di testo Ultimo messaggio della sessione selezionata.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di Transact-SQL

Per convalidare i dati per tutti gli articoli in una pubblicazione transazionale

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_publication_validation (Transact-SQL). Specificare @publication e uno dei valori riportati di seguito per @rowcount_only.

    • 1: convalida solo mediante conteggio delle righe (impostazione predefinita).

    • 2: convalida mediante conteggio delle righe e checksum binario.

    [!NOTA]

    Quando si esegue sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) viene eseguito per ogni articolo nella pubblicazione. Per eseguire correttamente sp_publication_validation (Transact-SQL), è necessario disporre delle autorizzazioni SELECT per tutte le colonne nelle tabelle di base pubblicate.

  2. (Facoltativo) Avviare l'agente di distribuzione per ogni sottoscrizione, se non è già in esecuzione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push.

  3. Verificare l'output dell'agente per il risultato della convalida. Per ulteriori informazioni, vedere Convalida dei dati replicati.

Per convalidare i dati per un singolo articolo in una pubblicazione transazionale

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_article_validation (Transact-SQL). Specificare @publication, il nome dell'articolo per @article e uno dei valori riportati di seguito per @rowcount_only.

    • 1: convalida solo mediante conteggio delle righe (impostazione predefinita).

    • 2: convalida mediante conteggio delle righe e checksum binario.

    [!NOTA]

    Per eseguire correttamente sp_article_validation (Transact-SQL), è necessario disporre delle autorizzazioni SELECT per tutte le colonne nella tabella di base pubblicata.

  2. (Facoltativo) Avviare l'agente di distribuzione per ogni sottoscrizione, se non è già in esecuzione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push.

  3. Verificare l'output dell'agente per il risultato della convalida. Per ulteriori informazioni, vedere Convalida dei dati replicati.

Per convalidare i dati per un singolo Sottoscrittore di una pubblicazione transazionale

  1. Nel database di pubblicazione del server di pubblicazione aprire una transazione esplicita utilizzando BEGIN TRANSACTION (Transact-SQL).

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_marksubscriptionvalidation (Transact-SQL). Specificare la pubblicazione per @publication, il nome del Sottoscrittore per @subscriber e il nome del database di sottoscrizione per @destination_db.

  3. (Facoltativo) Ripetere il passaggio 2 per ciascuna sottoscrizione da convalidare.

  4. Nel database di pubblicazione del server di pubblicazione eseguire sp_article_validation (Transact-SQL). Specificare @publication, il nome dell'articolo per @article e uno dei valori riportati di seguito per @rowcount_only.

    • 1: convalida solo mediante conteggio delle righe (impostazione predefinita).

    • 2: convalida mediante conteggio delle righe e checksum binario.

    [!NOTA]

    Per eseguire correttamente sp_article_validation (Transact-SQL), è necessario disporre delle autorizzazioni SELECT per tutte le colonne nella tabella di base pubblicata.

  5. Nel database di pubblicazione del server di pubblicazione eseguire il commit della transazione utilizzando COMMIT TRANSACTION (Transact-SQL).

  6. (Facoltativo) Ripetere i passaggi da 1 a 5 per ciascun articolo da convalidare.

  7. (Facoltativo) Avviare l'agente di distribuzione, se non è già in esecuzione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push.

  8. Verificare l'output dell'agente per il risultato della convalida. Per ulteriori informazioni, vedere Convalida dei dati nel Sottoscrittore.

Per convalidare i dati in tutte le sottoscrizioni di una pubblicazione di tipo merge

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_validatemergepublication (Transact-SQL). Specificare @publication e uno dei valori riportati di seguito per @level.

    • 1: convalida solo mediante conteggio delle righe.

    • 3: convalida mediante conteggio delle righe e checksum binario.

    Tutte le sottoscrizioni vengono contrassegnate per la convalida.

  2. Avviare l'agente di merge per ciascuna sottoscrizione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push.

  3. Verificare l'output dell'agente per il risultato della convalida. Per ulteriori informazioni, vedere Convalida dei dati nel Sottoscrittore.

Per convalidare i dati nelle sottoscrizioni selezionate di una pubblicazione di tipo merge

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_validatemergesubscription (Transact-SQL). Specificare @publication, il nome del Sottoscrittore per @subscriber, il nome del database di sottoscrizione per @subscriber_db e uno dei valori riportati di seguito per @level.

    • 1: convalida solo mediante conteggio delle righe.

    • 3: convalida mediante conteggio delle righe e checksum binario.

    La sottoscrizione selezionata viene contrassegnata per la convalida.

  2. Avviare l'agente di merge per ciascuna sottoscrizione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push.

  3. Verificare l'output dell'agente per il risultato della convalida.

  4. Ripetere i passaggi da 1 a 3 per ciascuna sottoscrizione da convalidare.

[!NOTA]

È inoltre possibile convalidare una sottoscrizione di una pubblicazione di tipo merge alla fine di una sincronizzazione, specificando il parametro -Validate al momento dell'esecuzione di Agente merge repliche.

Per convalidare i dati in una sottoscrizione utilizzando i parametri dell'agente di merge

  • Avviare l'agente di merge nel Sottoscrittore (sottoscrizione pull) o nel server di distribuzione (sottoscrizione push) dal prompt dei comandi, mediante una delle modalità indicate di seguito.

    • Specificare il valore 1 (conteggio delle righe) o 3 (conteggio delle righe e checksum binario) per il parametro -Validate.

    • Specificare la convalida mediante conteggio delle righe o la convalida mediante conteggio delle righe e checksum per il parametro -ProfileName.

    Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull o Sincronizzazione di una sottoscrizione push.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di RMO (Replication Management Objects)

La replica consente di utilizzare gli oggetti RMO (Replication Management Objects) per convalidare a livello di programmazione la corrispondenza tra i dati nel Sottoscrittore e quelli nel server di pubblicazione. Gli oggetti utilizzati variano in base al tipo di topologia di replica. La replica transazionale richiede la convalida di tutte le sottoscrizioni di una pubblicazione.

[!NOTA]

Ad esempio, vedere Esempio (RMO) più avanti in questa sezione.

Per convalidare i dati per tutti gli articoli in una pubblicazione transazionale

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.

  2. Creare un'istanza della classe TransPublication. Impostare le proprietà Name e DatabaseName per la pubblicazione. Impostare la proprietà ConnectionContext sulla connessione creata nel passaggio 1.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà rimanenti dell'oggetto. Se questo metodo restituisce false, le proprietà di pubblicazione sono state definite in modo non corretto nel passaggio 2 oppure la pubblicazione non esiste.

  4. Chiamare il metodo ValidatePublication. Passare quanto segue:

    Gli articoli vengono contrassegnati per la convalida.

  5. Se non è già in esecuzione, avviare l'agente di distribuzione per sincronizzare ciascuna sottoscrizione. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione push o Sincronizzazione di una sottoscrizione pull. Il risultato dell'operazione di convalida viene scritto nella cronologia dell'agente. Per ulteriori informazioni, vedere Monitoraggio della replica.

Per convalidare i dati in tutte le sottoscrizioni di una pubblicazione di tipo merge

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.

  2. Creare un'istanza della classe MergePublication. Impostare le proprietà Name e DatabaseName per la pubblicazione. Impostare la proprietà ConnectionContext sulla connessione creata nel passaggio 1.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà rimanenti dell'oggetto. Se questo metodo restituisce false, le proprietà di pubblicazione sono state definite in modo non corretto nel passaggio 2 oppure la pubblicazione non esiste.

  4. Chiamare il metodo ValidatePublication. Passare l'oggetto ValidationOption desiderato.

  5. Eseguire l'agente di merge per avviare la convalida in ciascuna sottoscrizione oppure attendere la successiva esecuzione pianificata dell'agente. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push. Il risultato dell'operazione di convalida viene scritto nella cronologia dell'agente, visualizzabile tramite Monitoraggio replica. Per ulteriori informazioni, vedere Monitoraggio della replica.

Per convalidare i dati in una singola sottoscrizione di una pubblicazione di tipo merge

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.

  2. Creare un'istanza della classe MergePublication. Impostare le proprietà Name e DatabaseName per la pubblicazione. Impostare la proprietà ConnectionContext sulla connessione creata nel passaggio 1.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà rimanenti dell'oggetto. Se questo metodo restituisce false, le proprietà di pubblicazione sono state definite in modo non corretto nel passaggio 2 oppure la pubblicazione non esiste.

  4. Chiamare il metodo ValidateSubscription. Passare il nome del Sottoscrittore e il database di sottoscrizione da convalidare e l'oggetto ValidationOption desiderato.

  5. Eseguire l'agente di merge per avviare la convalida nella sottoscrizione oppure attendere la successiva esecuzione pianificata dell'agente. Per ulteriori informazioni, vedere Sincronizzazione di una sottoscrizione pull e Sincronizzazione di una sottoscrizione push. Il risultato dell'operazione di convalida viene scritto nella cronologia dell'agente, visualizzabile tramite Monitoraggio replica. Per ulteriori informazioni, vedere Monitoraggio della replica.

Esempio (RMO)

In questo esempio tutte le sottoscrizioni di una pubblicazione transazionale vengono contrassegnate per la convalida mediante il conteggio delle righe.

          // 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

In questo esempio una sottoscrizione specifica di una pubblicazione di tipo merge viene contrassegnata per la convalida mediante il conteggio delle righe.

          // 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

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]