MergeSynchronizationAgent-Klasse

Stellt die Funktionalität des Replikationsmerge-Agents bereit.

Vererbungshierarchie

System. . :: . .Object
  System. . :: . .MarshalByRefObject
    Microsoft.SqlServer.Replication..::..MergeSynchronizationAgent

Namespace:  Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)

Syntax

'Declaration
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
<GuidAttribute("ee5ee47e-6d29-448f-b2d2-f8e632db336a")> _
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public Class MergeSynchronizationAgent _
    Inherits MarshalByRefObject _
    Implements IDisposable, IMergeSynchronizationAgent
'Usage
Dim instance As MergeSynchronizationAgent
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
[GuidAttribute("ee5ee47e-6d29-448f-b2d2-f8e632db336a")]
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public class MergeSynchronizationAgent : MarshalByRefObject, 
    IDisposable, IMergeSynchronizationAgent
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
[ComVisibleAttribute(true)]
[GuidAttribute(L"ee5ee47e-6d29-448f-b2d2-f8e632db336a")]
[PermissionSetAttribute(SecurityAction::Demand, Name = L"FullTrust")]
public ref class MergeSynchronizationAgent : public MarshalByRefObject, 
    IDisposable, IMergeSynchronizationAgent
[<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)>]
[<ComVisibleAttribute(true)>]
[<GuidAttribute("ee5ee47e-6d29-448f-b2d2-f8e632db336a")>]
[<PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")>]
type MergeSynchronizationAgent =  
    class
        inherit MarshalByRefObject
        interface IDisposable
        interface IMergeSynchronizationAgent
    end
public class MergeSynchronizationAgent extends MarshalByRefObject implements IDisposable, IMergeSynchronizationAgent

Der MergeSynchronizationAgent-Typ macht folgende Elemente verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode MergeSynchronizationAgent Erstellt eine Instanz der MergeSynchronizationAgent-Klasse.

Zum Anfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft AlternateSynchronizationPartnerCollection Ruft die alternativen Synchronisierungspartner für ein Abonnement ab.
Öffentliche Eigenschaft AltSnapshotFolder Ruft den alternativen Momentaufnahmeordner für das Abonnement ab oder legt diesen fest.
Öffentliche Eigenschaft ComErrorCollection Ruft eine Auflistung von vom Replikations-Agent generierten Fehlern ab.
Öffentliche Eigenschaft Distributor Ruft den Namen der Instanz von Microsoft SQL Server ab, die für das Abonnement als Verteiler fungiert, oder legt diesen fest.
Öffentliche Eigenschaft DistributorAddress Ruft die Netzwerkadresse ab, die verwendet wird, um eine Verbindung mit dem Verteiler herzustellen, wenn die DistributorNetwork-Eigenschaft angegeben ist, oder legt diese fest.
Öffentliche Eigenschaft DistributorEncryptedPassword Infrastruktur
Öffentliche Eigenschaft DistributorLogin Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft DistributorNetwork Ruft die Clientnetzwerkbibliothek ab, die beim Herstellen einer Verbindung mit dem Verteiler verwendet wird, oder legt diese fest.
Öffentliche Eigenschaft DistributorPassword Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server-Authentifizierung verwendet wird.
Öffentliche Eigenschaft DistributorSecurityMode Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Verteiler verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft DownloadGenerationsPerBatch Ruft die Anzahl von Generierungen ab, die in einem einzigen Batch verarbeitet werden sollen, während Änderungen vom Verleger auf den Abonnenten heruntergeladen werden, oder legt diese Anzahl fest. Eine Generierung ist als logische Gruppe von Änderungen pro Artikel definiert.
Öffentliche Eigenschaft DynamicSnapshotLocation Ruft den Speicherort der partitionierten Momentaufnahme für diesen Abonnenten ab oder legt diesen fest.
Öffentliche Eigenschaft ExchangeType Ruft ab, wie die Daten während der Synchronisierung ausgetauscht werden, oder legt die Vorgehensweise fest.
Öffentliche Eigenschaft FileTransferType Ruft ab, wie dem Abonnenten die ersten Momentaufnahmedateien übergeben werden, oder legt die Vorgehensweise fest.
Öffentliche Eigenschaft HostName Ruft den vom Merge-Agent verwendeten Wert ab, wenn dieser einen parametrisierten Filter auswertet, der die HOST_NAME-Funktion verwendet, oder legt den Wert fest.
Öffentliche Eigenschaft InputMessageFile Infrastruktur
Öffentliche Eigenschaft InternetLogin Ruft den Anmeldenamen ab, der bei der Websynchronisierung verwendet wird, wenn mithilfe der Internetauthentifizierung eine Verbindung mit dem Verleger hergestellt wird, oder legt diesen fest.
Öffentliche Eigenschaft InternetPassword Legt das Kennwort für die InternetLogin-Eigenschaft fest, die bei der Websynchronisierung verwendet wird, wenn mithilfe der Internetauthentifizierung eine Verbindung mit dem Verleger hergestellt wird.
Öffentliche Eigenschaft InternetProxyLogin Ruft den Anmeldenamen ab, der bei der Websynchronisierung verwendet wird, wenn mithilfe eines Internetproxyservers eine Verbindung mit dem Webserver hergestellt wird, oder legt diesen fest.
Öffentliche Eigenschaft InternetProxyPassword Legt das Kennwort für die Anmeldung fest, das bei der Websynchronisierung verwendet wird, wenn mithilfe eines Internetproxyservers eine Verbindung mit dem Webserver hergestellt wird.
Öffentliche Eigenschaft InternetProxyServer Ruft den Namen des Internetproxyservers ab, der bei der Websynchronisierung verwendet wird, wenn eine Verbindung mit dem Webserver hergestellt wird, oder legt diesen fest.
Öffentliche Eigenschaft InternetSecurityMode Ruft die HTTP-Authentifizierungsmethode ab, die beim Herstellen einer Verbindung mit dem Webserver während der Websynchronisierung verwendet wird, oder legt diese fest.
Öffentliche Eigenschaft InternetTimeout Ruft beim Herstellen einer Verbindung mit dem Webserver das HTTP-Timeout ab oder legt dieses fest.
Öffentliche Eigenschaft InternetUrl Ruft die URL des Webdiensts ab, der für die Websynchronisierung konfiguriert ist, oder legt diese fest.
Öffentliche Eigenschaft LastUpdatedTime Ruft den Zeitstempel der letzten Synchronisierung des Abonnements durch diesen Replikations-Agent ab.
Öffentliche Eigenschaft LoginTimeout Ruft die maximale Anzahl von Sekunden ab, die auf das Herstellen von Verbindungen gewartet werden soll, oder legt diese fest.
Öffentliche Eigenschaft MetadataRetentionCleanup Ruft ab oder legt fest, ob Metadaten zu bereinigen sind.
Öffentliche Eigenschaft Output Ruft die Agentausgabedatei ab oder legt diese fest.
Öffentliche Eigenschaft OutputMessageFile Infrastruktur
Öffentliche Eigenschaft OutputVerboseLevel Ruft ab oder legt fest, mit welcher Detailgenauigkeit Informationen in die Agentausgabedatei geschrieben werden sollen.
Öffentliche Eigenschaft ProfileName Ruft den Namen des Profils ab, das vom Agent verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft Publication Ruft den Namen der Veröffentlichung ab oder legt diesen fest.
Öffentliche Eigenschaft Publisher Ruft den Namen der Microsoft SQL Server-Instanz ab, die für das Abonnement als Verleger auftritt, oder legt diesen fest.
Öffentliche Eigenschaft PublisherAddress Ruft die Netzwerkadresse ab, die verwendet wird, um eine Verbindung mit dem Verleger herzustellen, wenn die PublisherNetwork-Eigenschaft angegeben wird, oder legt diese fest.
Öffentliche Eigenschaft PublisherChanges Ruft die Gesamtzahl von Verlegeränderungen ab, die während der letzten Synchronisierung beim Abonnenten angewendet wurden.
Öffentliche Eigenschaft PublisherConflicts Ruft die Gesamtzahl von Konflikten ab, die während der letzten Synchronisierung beim Verleger aufgetreten sind.
Öffentliche Eigenschaft PublisherDatabase Ruft den Namen der Veröffentlichungsdatenbank ab oder legt ihn fest.
Öffentliche Eigenschaft PublisherEncryptedPassword Infrastruktur
Öffentliche Eigenschaft PublisherFailoverPartner Ruft die Failoverpartnerinstanz von SQL Server ab, die an einer Datenbank-Spiegelungssitzung mit der Veröffentlichungsdatenbank teilnimmt, oder legt diese fest.
Öffentliche Eigenschaft PublisherLogin Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Verleger mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft PublisherNetwork Ruft die Clientnetzwerkbibliothek ab, die beim Herstellen einer Verbindung mit dem Verleger verwendet wird, oder legt diese fest.
Öffentliche Eigenschaft PublisherPassword Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Verleger mithilfe der SQL Server-Authentifizierung verwendet wird.
Öffentliche Eigenschaft PublisherSecurityMode Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Verleger verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft QueryTimeout Ruft die Anzahl von Sekunden ab, innerhalb derer interne Abfragen abgeschlossen sein müssen, oder legt diese fest.
Öffentliche Eigenschaft SecureDistributorEncryptedPassword Infrastruktur
Öffentliche Eigenschaft SecurePublisherEncryptedPassword Infrastruktur
Öffentliche Eigenschaft SecureSubscriberEncryptedPassword Infrastruktur
Öffentliche Eigenschaft Subscriber Ruft den Namen der Instanz von Microsoft SQL Server ab, die als Abonnent auftritt, oder legt diesen fest.
Öffentliche Eigenschaft SubscriberChanges Ruft die Gesamtzahl von Abonnentenänderungen ab, die während der letzten Synchronisierung beim Verleger angewendet wurden.
Öffentliche Eigenschaft SubscriberConflicts Ruft die Gesamtzahl von Konflikten ab, die während der letzten Synchronisierung beim Verleger aufgetreten sind.
Öffentliche Eigenschaft SubscriberDatabase Ruft den Namen der Abonnementdatenbank ab oder legt ihn fest.
Öffentliche Eigenschaft SubscriberDatabasePath Infrastruktur
Öffentliche Eigenschaft SubscriberDataSourceType Ruft den Typ der Datenquelle ab, die als Abonnent verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft SubscriberEncryptedPassword Infrastruktur
Öffentliche Eigenschaft SubscriberLogin Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Abonnenten mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft SubscriberPassword Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Abonnenten mithilfe der SQL Server-Authentifizierung verwendet wird.
Öffentliche Eigenschaft SubscriberSecurityMode Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Abonnenten verwendet wird, oder legt diesen fest.
Öffentliche Eigenschaft SubscriptionType Ruft ab oder legt fest, ob das Abonnement ein Push- oder Pullabonnement ist.
Öffentliche Eigenschaft SyncToAlternate Ruft ab oder legt fest, ob es sich bei der Synchronisierung um eine Synchronisierung mit einem alternativen Synchronisierungspartner handelt.
Öffentliche Eigenschaft UploadGenerationsPerBatch Ruft die Anzahl von Generierungen ab, die in einem einzigen Batch verarbeitet werden sollen, während Änderungen vom Abonnenten auf den Verleger hochgeladen werden, oder legt diese Anzahl fest. Eine Generierung ist als logische Gruppe von Änderungen pro Artikel definiert.
Öffentliche Eigenschaft UseInteractiveResolver Ruft ab oder legt fest, ob für die Abstimmung der interaktive Konfliktlöser verwendet wird.
Öffentliche Eigenschaft UseWebSynchronization Ruft ab oder legt fest, ob die Websynchronisierung verwendet wird.
Öffentliche Eigenschaft Validate Ruft ab oder legt fest, ob die Abonnentendaten am Ende der Synchronisierung einer Datenüberprüfung unterzogen werden.
Öffentliche Eigenschaft WorkingDirectory Ruft das Arbeitsverzeichnis ab, von dem aus bei Verwendung von FTP auf Momentaufnahmedateien zugegriffen wird, oder legt dieses fest.

Zum Anfang

Methoden

  Name Beschreibung
Öffentliche Methode Abort Infrastruktur
Öffentliche Methode ClearAllTraceFlags Infrastruktur
Öffentliche Methode ClearTraceFlag Infrastruktur
Öffentliche Methode CreateObjRef (Geerbt von MarshalByRefObject.)
Öffentliche Methode Dispose() () () () Infrastruktur
Geschützte Methode Dispose(Boolean) Infrastruktur
Öffentliche Methode EnableTraceFlag Infrastruktur
Öffentliche Methode Equals (Geerbt von Object.)
Geschützte Methode Finalize Infrastruktur (Überschreibt Object. . :: . .Finalize() () () ().)
Öffentliche Methode GetHashCode (Geerbt von Object.)
Öffentliche Methode GetLifetimeService (Geerbt von MarshalByRefObject.)
Öffentliche Methode GetType (Geerbt von Object.)
Öffentliche Methode InitializeLifetimeService (Geerbt von MarshalByRefObject.)
Öffentliche Methode IsSnapshotRequired Stellt eine Verbindung mit dem Verleger oder Verteiler und dem Abonnenten her, um zu bestimmen, ob während der nächsten Agentsynchronisierung eine neue Momentaufnahme angewendet wird.
Geschützte Methode MemberwiseClone() () () () (Geerbt von Object.)
Geschützte Methode MemberwiseClone(Boolean) (Geerbt von MarshalByRefObject.)
Öffentliche Methode ProcessMessagesAtPublisher Infrastruktur
Öffentliche Methode ProcessMessagesAtSubscriber Infrastruktur
Öffentliche Methode Synchronize Startet den Merge-Agent, um das Abonnement zu synchronisieren.
Öffentliche Methode ToString (Geerbt von Object.)

Zum Anfang

Ereignisse

  Name Beschreibung
Öffentliches Ereignis ComStatus Infrastruktur
Öffentliches Ereignis Status Tritt auf, wenn der Merge-Agent Informationen zum Synchronisierungsstatus zurückgibt.

Zum Anfang

Hinweise

The MergeSynchronizationAgent class supports the ability to do the following replication tasks:

  • Synchronize subscriptions.

  • Specify whether only the upload phase, only the download phase, or both phases are run during synchronization.

  • Validate that a subscription has the expected data.

  • Specify a different snapshot folder, from which the initial snapshot for a subscription can be applied.

The MergeSynchronizationAgent class can be used with Publishers and Subscribers that are running on both SQL Server 2000 and SQL Server 2005.

A MergeSynchronizationAgent class cannot be used with Distributors that are running on SQL Server 2000.

Beispiele

In the following example, the Synchronize method is called on the instance of the MergeSynchronizationAgent class that is accessed from the SynchronizationAgent property to synchronize the push subscription.

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

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

            MergeSubscription subscription;

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

                // Define the subscription.
                subscription = new MergeSubscription();
                subscription.ConnectionContext = conn;
                subscription.DatabaseName = publicationDbName;
                subscription.PublicationName = publicationName;
                subscription.SubscriptionDBName = subscriptionDbName;
                subscription.SubscriberName = subscriberName;

                // If the push subscription exists, start the synchronization.
                if (subscription.LoadProperties())
                {
                    // Check that we have enough metadata to start the agent.
                    if (subscription.SubscriberSecurity != null)
                    {
                        // Synchronously start the Merge Agent for the subscription.
                        subscription.SynchronizationAgent.Synchronize();
                    }
                    else
                    {
                        throw new ApplicationException("There is insufficent metadata to " +
                            "synchronize the subscription. Recreate the subscription with " +
                            "the agent job or supply the required agent properties at run time.");
                    }
                }
                else
                {
                    // Do something here if the push subscription does not exist.
                    throw new ApplicationException(String.Format(
                        "The subscription to '{0}' does not exist on {1}",
                        publicationName, subscriberName));
                }
            }
            catch (Exception ex)
            {
                // Implement appropriate error handling here.
                throw new ApplicationException("The subscription could not be synchronized.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim subscriptionDbName As String = "AdventureWorks2008R2Replica"
Dim publicationDbName As String = "AdventureWorks2008R2"

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

Dim subscription As MergeSubscription

Try
    ' Connect to the Publisher
    conn.Connect()

    ' Define the subscription.
    subscription = New MergeSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = publicationDbName
    subscription.PublicationName = publicationName
    subscription.SubscriptionDBName = subscriptionDbName
    subscription.SubscriberName = subscriberName

    ' If the push subscription exists, start the synchronization.
    If subscription.LoadProperties() Then
        ' Check that we have enough metadata to start the agent.
        If Not subscription.SubscriberSecurity Is Nothing Then
            ' Synchronously start the Merge Agent for the subscription.
            ' Log agent messages to an output file.
            subscription.SynchronizationAgent.Output = "mergeagent.log"
            subscription.SynchronizationAgent.OutputVerboseLevel = 2
            subscription.SynchronizationAgent.Synchronize()
        Else
            Throw New ApplicationException("There is insufficent metadata to " + _
             "synchronize the subscription. Recreate the subscription with " + _
             "the agent job or supply the required agent properties at run time.")
        End If
    Else
        ' Do something here if the push subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "The subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
    conn.Disconnect()
End Try

In the following example, an instance of the MergeSynchronizationAgent class is used to synchronize a merge subscription. Because the pull subscription was created by using a value of false for CreateSyncAgentByDefault, additional properties must be supplied.

            // Define the server, publication, and database names.
            string subscriberName = subscriberInstance;
            string publisherName = publisherInstance;
            string distributorName = distributorInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string subscriptionDbName = "AdventureWorks2008R2Replica";
            string publicationDbName = "AdventureWorks2008R2";
            string hostname = @"adventure-works\garrett1";
            string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll";

            // Create a connection to the Subscriber.
            ServerConnection conn = new ServerConnection(subscriberName);

            MergePullSubscription subscription;
            MergeSynchronizationAgent agent;

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

                // Define the pull subscription.
                subscription = new MergePullSubscription();
                subscription.ConnectionContext = conn;
                subscription.DatabaseName = subscriptionDbName;
                subscription.PublisherName = publisherName;
                subscription.PublicationDBName = publicationDbName;
                subscription.PublicationName = publicationName;

                // If the pull subscription exists, then start the synchronization.
                if (subscription.LoadProperties())
                {
                    // Get the agent for the subscription.
                    agent = subscription.SynchronizationAgent;

                    // Check that we have enough metadata to start the agent.
                    if (agent.PublisherSecurityMode == null)
                    {
                        // Set the required properties that could not be returned
                        // from the MSsubscription_properties table. 
                        agent.PublisherSecurityMode = SecurityMode.Integrated;
                        agent.DistributorSecurityMode = SecurityMode.Integrated;
                        agent.Distributor = publisherName;
                        agent.HostName = hostname;

                        // Set optional Web synchronization properties.
                        agent.UseWebSynchronization = true;
                        agent.InternetUrl = webSyncUrl;
                        agent.InternetSecurityMode = SecurityMode.Standard;
                        agent.InternetLogin = winLogin;
                        agent.InternetPassword = winPassword;
                    }
                    // Enable agent output to the console.
                    agent.OutputVerboseLevel = 1;
                    agent.Output = "";

                    // Synchronously start the Merge Agent for the subscription.
                    agent.Synchronize();
                }
                else
                {
                    // Do something here if the pull subscription does not exist.
                    throw new ApplicationException(String.Format(
                        "A subscription to '{0}' does not exist on {1}",
                        publicationName, subscriberName));
                }
            }
            catch (Exception ex)
            {
                // Implement appropriate error handling here.
                throw new ApplicationException("The subscription could not be " +
                    "synchronized. Verify that the subscription has " +
                    "been defined correctly.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim subscriptionDbName As String = "AdventureWorks2008R2Replica"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim hostname As String = "adventure-works\garrett1"
Dim webSyncUrl As String = "https://" + publisherInstance + "/SalesOrders/replisapi.dll"

' Create a connection to the Subscriber.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

Dim subscription As MergePullSubscription
Dim agent As MergeSynchronizationAgent

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

    ' Define the pull subscription.
    subscription = New MergePullSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = subscriptionDbName
    subscription.PublisherName = publisherName
    subscription.PublicationDBName = publicationDbName
    subscription.PublicationName = publicationName

    ' If the pull subscription exists, then start the synchronization.
    If subscription.LoadProperties() Then
        ' Get the agent for the subscription.
        agent = subscription.SynchronizationAgent

        ' Check that we have enough metadata to start the agent.
        If agent.PublisherSecurityMode = Nothing Then
            ' Set the required properties that could not be returned
            ' from the MSsubscription_properties table. 
            agent.PublisherSecurityMode = SecurityMode.Integrated
            agent.Distributor = publisherInstance
            agent.DistributorSecurityMode = SecurityMode.Integrated
            agent.HostName = hostname

            ' Set optional Web synchronization properties.
            agent.UseWebSynchronization = True
            agent.InternetUrl = webSyncUrl
            agent.InternetSecurityMode = SecurityMode.Standard
            agent.InternetLogin = winLogin
            agent.InternetPassword = winPassword
        End If

        ' Enable agent logging to the console.
        agent.OutputVerboseLevel = 1
        agent.Output = ""

        ' Synchronously start the Merge Agent for the subscription.
        agent.Synchronize()
    Else
        ' Do something here if the pull subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "A subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be " + _
     "synchronized. Verify that the subscription has " + _
     "been defined correctly.", ex)
Finally
    conn.Disconnect()
End Try

Threadsicherheit

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.