Udostępnij za pośrednictwem


Klasa MergeSynchronizationAgent

Zapewnia funkcje Agent replikacji scalania.

Hierarchia dziedziczenia

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

Przestrzeń nazw:  Microsoft.SqlServer.Replication
Zestaw:  Microsoft.SqlServer.Replication (w Microsoft.SqlServer.Replication.dll)

Składnia

'Deklaracja
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
<GuidAttribute("ee5ee47e-6d29-448f-b2d2-f8e632db336a")> _
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public Class MergeSynchronizationAgent _
    Inherits MarshalByRefObject _
    Implements IDisposable, IMergeSynchronizationAgent
'Użycie
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

Typ MergeSynchronizationAgent uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna MergeSynchronizationAgent Tworzy wystąpienie MergeSynchronizationAgent klasy

Do góry

Właściwości

  Nazwa Opis
Właściwość publiczna AlternateSynchronizationPartnerCollection Pobiera partnerów do synchronizacji alternatywny dla subskrypcja.
Właściwość publiczna AltSnapshotFolder Pobiera lub ustawia folderu migawka alternatywny dla subskrypcja.
Właściwość publiczna ComErrorCollection Pobiera kolekcja błędów generowanych przez agenta replikacja.
Właściwość publiczna Distributor Gets or sets the name of the instance of Microsoft SQL Server that is acting as the Distributor for the subscription.
Właściwość publiczna DistributorAddress Pobiera lub ustawia adres sieciowy, który jest używany do łączenia do dystrybutora po DistributorNetwork określona właściwość.
Właściwość publiczna DistributorEncryptedPassword Infrastruktura.
Właściwość publiczna DistributorLogin Pobiera lub ustawia nazwę logowania, która jest używana podczas łączenia się z pomocą dystrybutora SQL Server uwierzytelniania.
Właściwość publiczna DistributorNetwork Pobiera lub ustawia klient Net-Library używanej przy łączeniu się z dystrybutorem.
Właściwość publiczna DistributorPassword Ustawia hasło używane przy łączeniu się z pomocą dystrybutora SQL Server uwierzytelniania.
Właściwość publiczna DistributorSecurityMode Pobiera lub ustawia tryb zabezpieczeń używane do dystrybutora.
Właściwość publiczna DownloadGenerationsPerBatch Pobiera lub ustawia liczbę pokoleń mają być przetwarzane w jednej partia podczas pobierania zmiany z Wydawca do subskrybenta.Generowanie jest zdefiniowana jako logicznej grupy zmian każdego artykuł.
Właściwość publiczna DynamicSnapshotLocation Pobiera lub Ustawia lokalizację partycjonowana migawka dla tego abonenta.
Właściwość publiczna ExchangeType Pobiera lub ustawia sposób wymiany danych podczas synchronizacji.
Właściwość publiczna FileTransferType Pobiera lub ustawia jak migawka początkowa pliki są przenoszone do subskrybenta.
Właściwość publiczna HostName Pobiera lub ustawia wartość używana przez agenta scalić podczas ocenia sparametryzowana filtr, który używa HOST_NAME funkcja.
Właściwość publiczna InputMessageFile Infrastruktura.
Właściwość publiczna InternetLogin Pobiera lub ustawia nazwę logowania, używany z sieci synchronizacja w sieci Web podczas łączenia się z Wydawca przy użyciu uwierzytelnianie internetowego.
Właściwość publiczna InternetPassword Ustawia hasło dla InternetLogin właściwość, która jest używana w sieci synchronizacja w sieci Web podczas łączenia się z Wydawca przy użyciu uwierzytelnianie internetowego.
Właściwość publiczna InternetProxyLogin Pobiera lub ustawia nazwę logowania, używany z sieci synchronizacja w sieci Web podczas łączenia się z serwerem sieci Web przy użyciu internetowego serwera proxy.
Właściwość publiczna InternetProxyPassword Ustawia hasło logowania, używany z sieci synchronizacja w sieci Web podczas łączenia się z serwerem sieci Web przy użyciu internetowego serwera proxy.
Właściwość publiczna InternetProxyServer Pobiera lub ustawia nazwę internetowy serwer proxy jest używany z synchronizacja w sieci Web podczas łączenia się z serwerem sieci Web.
Właściwość publiczna InternetSecurityMode Pobiera lub Ustawia metoda uwierzytelnianie HTTP używanej przy łączeniu się z serwerem sieci Web podczas synchronizacja w sieci Web.
Właściwość publiczna InternetTimeout Pobiera lub ustawia HTTP czas-out do łączenia z serwerem sieci Web.
Właściwość publiczna InternetUrl Pobiera lub ustawia adres URL usługa sieci Web, skonfigurowanym do synchronizacja w sieci Web.
Właściwość publiczna LastUpdatedTime Pobiera czaspieczęć ostatniego czas że agent replikacja synchronizowane subskrypcja.
Właściwość publiczna LoginTimeout Pobiera lub ustawia maksymalną liczbę sekund oczekiwania na połączeń.
Właściwość publiczna MetadataRetentionCleanup GET lub ustawia, czy czyszczenie metadane.
Właściwość publiczna Output Pobiera lub ustawia plik wyjściowy agenta.
Właściwość publiczna OutputMessageFile Infrastruktura.
Właściwość publiczna OutputVerboseLevel Pobiera lub ustawia poziom szczegółowości informacji zapisywanych w pliku wyjściowym agenta.
Właściwość publiczna ProfileName Pobiera lub ustawia nazwę profilu, która jest używana przez agenta.
Właściwość publiczna Publication Pobiera lub ustawia nazwę publikacja.
Właściwość publiczna Publisher Gets or sets the name of the instance of Microsoft SQL Server that is the Publisher for the subscription.
Właściwość publiczna PublisherAddress Pobiera lub ustawia adres sieciowy, który jest używany do łączenia się z Wydawca po PublisherNetwork określona właściwość.
Właściwość publiczna PublisherChanges Pobiera całkowitą liczbę zmian Wydawca, które zostały zastosowane przez subskrybenta podczas ostatniej synchronizacji.
Właściwość publiczna PublisherConflicts Pobiera całkowitą liczbę konfliktów, które wystąpiły w Wydawca podczas ostatniej synchronizacji.
Właściwość publiczna PublisherDatabase Pobiera lub ustawia nazwę baza danych publikacja.
Właściwość publiczna PublisherEncryptedPassword Infrastruktura.
Właściwość publiczna PublisherFailoverPartner Pobiera lub ustawia wystąpienie partner pracy awaryjnej SQL Server uczestniczy w bazie dublowanie sesja z baza danych publikacja.
Właściwość publiczna PublisherLogin Pobiera lub ustawia nazwę logowania, który jest używany przy łączeniu się z Wydawca za pomocą SQL Server uwierzytelniania.
Właściwość publiczna PublisherNetwork Pobiera lub ustawia klient Net-Library, który jest używany przy łączeniu się z Wydawca.
Właściwość publiczna PublisherPassword Ustawia hasło używane podczas łączenia się z Wydawca za pomocą SQL Server uwierzytelniania.
Właściwość publiczna PublisherSecurityMode Pobiera lub ustawia tryb zabezpieczeń, który jest używany przy łączeniu się z Wydawca.
Właściwość publiczna QueryTimeout Pobiera lub ustawia liczbę sekund, które są dozwolone dla wewnętrznych kwerend zakończy się.
Właściwość publiczna SecureDistributorEncryptedPassword Infrastruktura.
Właściwość publiczna SecurePublisherEncryptedPassword Infrastruktura.
Właściwość publiczna SecureSubscriberEncryptedPassword Infrastruktura.
Właściwość publiczna Subscriber Gets or sets the name of the instance of Microsoft SQL Server that is the Subscriber.
Właściwość publiczna SubscriberChanges Pobiera całkowitą liczbę zmian abonenta, które zostały zastosowane w Wydawca podczas ostatniej synchronizacji.
Właściwość publiczna SubscriberConflicts Pobiera całkowitą liczbę konfliktów, które wystąpiły w Wydawca podczas ostatniej synchronizacji.
Właściwość publiczna SubscriberDatabase Pobiera lub ustawia nazwę baza danych subskrypcja.
Właściwość publiczna SubscriberDatabasePath Infrastruktura.
Właściwość publiczna SubscriberDataSourceType Pobiera lub ustawia typ źródło danych, który jest używany jako subskrybent.
Właściwość publiczna SubscriberEncryptedPassword Infrastruktura.
Właściwość publiczna SubscriberLogin Pobiera lub ustawia nazwę logowania używany jest podczas łączenia się z subskrybenta za pomocą SQL Server uwierzytelniania.
Właściwość publiczna SubscriberPassword Ustawia hasło używane przy łączeniu się z subskrybenta za pomocą SQL Server uwierzytelniania.
Właściwość publiczna SubscriberSecurityMode Pobiera lub ustawia tryb zabezpieczeń używane do subskrybenta.
Właściwość publiczna SubscriptionType Pobiera lub ustawia, czy subskrypcja jest wypychanie lub Pobierz subskrypcję.
Właściwość publiczna SyncToAlternate Pobiera lub ustawia, czy partner alternatywny synchronizacji synchronizacja.
Właściwość publiczna UploadGenerationsPerBatch Pobiera lub ustawia liczbę pokoleń mają być przetwarzane w jednej partia podczas przekazywania zmian od subskrybenta do Wydawca.Generowanie jest zdefiniowana jako logicznej grupy zmian każdego artykuł.
Właściwość publiczna UseInteractiveResolver Pobiera lub ustawia, czy interaktywne rozpoznawania nazw jest używany podczas uzgadniania.
Właściwość publiczna UseWebSynchronization Pobiera lub ustawia, czy ma być używany w sieci synchronizacja w sieci Web.
Właściwość publiczna Validate Pobiera lub ustawia, czy sprawdzanie poprawności danych jest wykonywane na danych subskrybenta na zakończenie synchronizacji.
Właściwość publiczna WorkingDirectory Pobiera lub ustawia katalog roboczy, z którego migawka pliki są dostępne, gdy FTP jest używany.

Do góry

Metody

  Nazwa Opis
Metoda publiczna Abort Infrastruktura.
Metoda publiczna ClearAllTraceFlags Infrastruktura.
Metoda publiczna ClearTraceFlag Infrastruktura.
Metoda publiczna CreateObjRef (Dziedziczony z MarshalByRefObject).
Metoda publiczna Dispose() Infrastruktura.
Metoda chroniona Dispose(Boolean) Infrastruktura.
Metoda publiczna EnableTraceFlag Infrastruktura.
Metoda publiczna Equals (Dziedziczony z Object).
Metoda chroniona Finalize Infrastruktura. (Zastępuje Object.Finalize()).
Metoda publiczna GetHashCode (Dziedziczony z Object).
Metoda publiczna GetLifetimeService (Dziedziczony z MarshalByRefObject).
Metoda publiczna GetType (Dziedziczony z Object).
Metoda publiczna InitializeLifetimeService (Dziedziczony z MarshalByRefObject).
Metoda publiczna IsSnapshotRequired Łączy się z Wydawca lub dystrybutora i subskrybenta, aby ustalić, czy Nowa migawka zostanie zastosowany podczas następnej synchronizacji agenta.
Metoda chroniona MemberwiseClone() (Dziedziczony z Object).
Metoda chroniona MemberwiseClone(Boolean) (Dziedziczony z MarshalByRefObject).
Metoda publiczna ProcessMessagesAtPublisher Infrastruktura.
Metoda publiczna ProcessMessagesAtSubscriber Infrastruktura.
Metoda publiczna Synchronize Uruchamia agenta scalania do synchronizacji subskrypcja.
Metoda publiczna ToString (Dziedziczony z Object).

Do góry

Zdarzenia

  Nazwa Opis
Zdarzenie publiczne ComStatus Infrastruktura.
Zdarzenie publiczne Status Występuje, gdy Agent scalić zwraca informacje o stanie synchronizacji.

Do góry

Uwagi

MergeSynchronizationAgent Klasy pozwala wykonywać następujące zadania replikacja:

  • Synchronizacja subskrypcji.

  • Określić, czy tylko przekazywania faza, tylko fazy pobierania, lub w obu fazach są uruchamiane podczas synchronizacji.

  • Sprawdź, że oczekiwane dane subskrypcja.

  • Określ folder innej migawki, z którego migawka początkowa dla subskrypcja mogą być stosowane.

MergeSynchronizationAgent Klasy mogą być używane z wydawców i abonentów, w których są uruchomione w obu SQL Server 2000 i SQL Server 2005.

A MergeSynchronizationAgent klasy nie można używać z dystrybutorów, które są uruchomione na SQL Server 2000.

Przykłady

W poniższym przykładzie Synchronize wystąpienie wywoływana jest metoda MergeSynchronizationAgent klasy, który jest dostępny z SynchronizationAgent właściwość synchronizacji subskrypcja wypychana.

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

W poniższym przykładzie wystąpienie z MergeSynchronizationAgent Klasa jest używana do synchronizowania subskrypcja korespondencji seryjnej.Ponieważ subskrypcja wciągana został utworzony przy użyciu wartości dla false dla CreateSyncAgentByDefault, muszą zostać dostarczone dodatkowe właściwości.

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

Bezpieczeństwo wątków

Wszystkie publiczne statyczne (Shared w języku Visual Basic) elementy tego typu są wątek bezpieczne.Nie ma gwarancji, że elementy członkowskie wystąpień będą bezpieczne dla wątków.