MergeSynchronizationAgent Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Funktionalität des Replikationsmerge-Agents bereit.
public ref class MergeSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::IMergeSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("ee5ee47e-6d29-448f-b2d2-f8e632db336a")]
public class MergeSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.IMergeSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("ee5ee47e-6d29-448f-b2d2-f8e632db336a")>]
type MergeSynchronizationAgent = class
inherit MarshalByRefObject
interface IDisposable
interface IMergeSynchronizationAgent
Public Class MergeSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, IMergeSynchronizationAgent
- Vererbung
-
MergeSynchronizationAgent
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel wird die Synchronize Methode auf die Instanz der MergeSynchronizationAgent Klasse aufgerufen, auf die von der SynchronizationAgent Eigenschaft zugegriffen wird, um das Pushabonnement zu synchronisieren.
// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
// 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 = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
' 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
Im folgenden Beispiel wird eine Instanz der MergeSynchronizationAgent Klasse verwendet, um ein Seriendruckabonnement zu synchronisieren. Da das Pullabonnement mithilfe eines Werts false
für CreateSyncAgentByDefault, zusätzliche Eigenschaften angegeben werden müssen.
// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string distributorName = distributorInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
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 = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
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
Hinweise
Die MergeSynchronizationAgent Klasse unterstützt die Möglichkeit, die folgenden Replikationsaufgaben auszuführen:
Synchronisieren sie Abonnements.
Geben Sie an, ob nur die Uploadphase, nur die Downloadphase oder beide Phasen während der Synchronisierung ausgeführt werden.
Überprüfen Sie, ob ein Abonnement über die erwarteten Daten verfügt.
Geben Sie einen anderen Momentaufnahmeordner an, aus dem die anfängliche Momentaufnahme für ein Abonnement angewendet werden kann.
Konstruktoren
MergeSynchronizationAgent() |
Erstellt eine Instanz der MergeSynchronizationAgent-Klasse. |
Eigenschaften
AlternateSynchronizationPartnerCollection |
Ruft die alternativen Synchronisierungspartner für ein Abonnement ab. |
AltSnapshotFolder |
Ruft den alternativen Momentaufnahmeordner für das Abonnement ab oder legt diesen fest. |
ComErrorCollection |
Ruft eine Auflistung von vom Replikations-Agent generierten Fehlern ab. |
Distributor |
Ruft den Namen der Instanz von Microsoft SQL Server ab, die für das Abonnement als Verteiler fungiert, oder legt diesen fest. |
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. |
DistributorEncryptedPassword |
Ruft das verschlüsselte Kennwort des Verteilers ab oder legt sie fest. |
DistributorLogin |
Dient zum Abrufen oder Festlegen des Anmeldenamens, der beim Herstellen einer Verbindung mit dem Verteiler mithilfe SQL Server Authentifizierung verwendet wird. |
DistributorNetwork |
Ruft die Clientnetzwerkbibliothek ab, die beim Herstellen einer Verbindung mit dem Verteiler verwendet wird, oder legt diese fest. |
DistributorPassword |
Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Verteiler mit SQL Server Authentifizierung verwendet wird. |
DistributorSecurityMode |
Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Verteiler verwendet wird, oder legt diesen fest. |
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. |
DynamicSnapshotLocation |
Ruft den Speicherort der partitionierten Momentaufnahme für diesen Abonnenten ab oder legt diesen fest. |
ExchangeType |
Ruft ab, wie die Daten während der Synchronisierung ausgetauscht werden, oder legt die Vorgehensweise fest. |
FileTransferType |
Ruft ab, wie dem Abonnenten die ersten Momentaufnahmedateien übergeben werden, oder legt die Vorgehensweise fest. |
HostName |
Ruft den vom Merge-Agent verwendeten Wert ab oder legt ihn fest, wenn er einen parameterisierten Filter auswertet, der die HOST_NAME-Funktion verwendet. |
InputMessageFile |
Ruft die Eingabemeldungsdatei ab oder legt sie fest. |
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. |
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. |
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. |
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. |
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. |
InternetSecurityMode |
Ruft die HTTP-Authentifizierungsmethode ab, die beim Herstellen einer Verbindung mit dem Webserver während der Websynchronisierung verwendet wird, oder legt diese fest. |
InternetTimeout |
Ruft beim Herstellen einer Verbindung mit dem Webserver das HTTP-Timeout ab oder legt dieses fest. |
InternetUrl |
Ruft die URL des Webdiensts ab, der für die Websynchronisierung konfiguriert ist, oder legt diese fest. |
LastUpdatedTime |
Ruft den Zeitstempel der letzten Synchronisierung des Abonnements durch diesen Replikations-Agent ab. |
LoginTimeout |
Ruft die maximale Anzahl von Sekunden ab, die auf das Herstellen von Verbindungen gewartet werden soll, oder legt diese fest. |
MetadataRetentionCleanup |
Ruft ab oder legt fest, ob Metadaten zu bereinigen sind. |
Output |
Ruft die Agentausgabedatei ab oder legt diese fest. |
OutputMessageFile |
Ruft die Eingabemeldungsdatei ab oder legt sie fest. |
OutputVerboseLevel |
Dient zum Abrufen oder Festlegen der Detailebene von Informationen, die in die Agent-Ausgabedatei geschrieben werden. |
ProfileName |
Ruft den Namen des Profils ab, das vom Agent verwendet wird, oder legt diesen fest. |
Publication |
Ruft den Namen der Veröffentlichung ab oder legt diesen fest. |
Publisher |
Ruft den Namen der Microsoft SQL Server-Instanz ab, die für das Abonnement als Verleger auftritt, oder legt diesen fest. |
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. |
PublisherChanges |
Ruft die Gesamtzahl von Verlegeränderungen ab, die während der letzten Synchronisierung beim Abonnenten angewendet wurden. |
PublisherConflicts |
Ruft die Gesamtzahl von Konflikten ab, die während der letzten Synchronisierung beim Verleger aufgetreten sind. |
PublisherDatabase |
Ruft den Namen der Veröffentlichungsdatenbank ab oder legt ihn fest. |
PublisherEncryptedPassword |
Ruft das verschlüsselte Kennwort für den Verleger ab oder legt es fest. |
PublisherFailoverPartner |
Ruft die Failoverpartnerinstanz von SQL Server ab, die an einer Datenbankspiegelsitzung mit der Publikationsdatenbank teilnimmt, oder legt diese fest. |
PublisherLogin |
Dient zum Abrufen oder Festlegen des Anmeldenamens, der beim Herstellen einer Verbindung mit dem Publisher mithilfe der SQL Server Authentifizierung verwendet wird. |
PublisherNetwork |
Ruft die Clientnetzwerkbibliothek ab, die beim Herstellen einer Verbindung mit dem Verleger verwendet wird, oder legt diese fest. |
PublisherPassword |
Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Publisher mithilfe SQL Server Authentifizierung verwendet wird. |
PublisherSecurityMode |
Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Verleger verwendet wird, oder legt diesen fest. |
QueryTimeout |
Ruft die Anzahl von Sekunden ab, innerhalb derer interne Abfragen abgeschlossen sein müssen, oder legt diese fest. |
SecureDistributorEncryptedPassword |
Ruft das verschlüsselte Kennwort für den sicheren Verteiler ab oder legt sie fest. |
SecurePublisherEncryptedPassword |
Ruft das sichere verschlüsselte Kennwort für den Verleger ab oder legt es fest. |
SecureSubscriberEncryptedPassword |
Ruft das sichere verschlüsselte Kennwort für den Abonnenten ab oder legt es fest. |
Subscriber |
Ruft den Namen der Microsoft SQL Server-Instanz ab, die der Abonnent ist, oder legt diesen fest. |
SubscriberChanges |
Ruft die Gesamtzahl von Abonnentenänderungen ab, die während der letzten Synchronisierung beim Verleger angewendet wurden. |
SubscriberConflicts |
Ruft die Gesamtzahl von Konflikten ab, die während der letzten Synchronisierung beim Verleger aufgetreten sind. |
SubscriberDatabase |
Ruft den Namen der Abonnementdatenbank ab oder legt diesen fest. |
SubscriberDatabasePath |
Ruft den Pfad zur Abonnentendatenbank ab oder legt ihn fest. |
SubscriberDataSourceType |
Ruft den Typ der Datenquelle ab, die als Abonnent verwendet wird, oder legt diesen fest. |
SubscriberEncryptedPassword |
Ruft das verschlüsselte Kennwort für den Abonnenten ab oder legt es fest. |
SubscriberLogin |
Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Abonnenten mithilfe SQL Server Authentifizierung verwendet wird, oder legt diesen fest. |
SubscriberPassword |
Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Abonnenten mithilfe SQL Server Authentifizierung verwendet wird. |
SubscriberSecurityMode |
Ruft den Sicherheitsmodus ab, der beim Herstellen einer Verbindung mit dem Abonnenten verwendet wird, oder legt diesen fest. |
SubscriptionType |
Ruft ab oder legt fest, ob das Abonnement ein Push- oder Pullabonnement ist. |
SyncToAlternate |
Ruft ab oder legt fest, ob es sich bei der Synchronisierung um eine Synchronisierung mit einem alternativen Synchronisierungspartner handelt. |
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. |
UseInteractiveResolver |
Ruft ab oder legt fest, ob für die Abstimmung der interaktive Konfliktlöser verwendet wird. |
UseWebSynchronization |
Ruft ab oder legt fest, ob die Websynchronisierung verwendet wird. |
Validate |
Ruft ab oder legt fest, ob die Abonnentendaten am Ende der Synchronisierung einer Datenüberprüfung unterzogen werden. |
WorkingDirectory |
Ruft das Arbeitsverzeichnis ab, von dem aus bei Verwendung von FTP auf Momentaufnahmedateien zugegriffen wird, oder legt dieses fest. |
Methoden
Abort() |
Bricht die Synchronisierung ab. |
ClearAllTraceFlags() |
Löscht alle vom Synchronisierungs-Agent verwendeten Ablaufverfolgungsflags. |
ClearTraceFlag(Int32) |
Löscht ein Ablaufverfolgungsflag. |
Dispose() |
Veröffentlicht die nicht verwalteten Ressourcen, die von MergeSynchronizationAgent. |
Dispose(Boolean) |
Veröffentlicht die nicht verwalteten Ressourcen, die von MergeSynchronizationAgent der Klasse verwendet werden, und gibt optional die verwalteten Ressourcen ab. |
EnableTraceFlag(Int32) |
Aktiviert die Verwendung von Ablaufverfolgungsflags. |
Finalize() |
Schließt den Agent ab. |
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. |
ProcessMessagesAtPublisher() |
Verarbeitet die Nachrichten bei Publisher. |
ProcessMessagesAtSubscriber() |
Verarbeitet die Nachrichten beim Abonnenten. |
Synchronize() |
Startet den Merge-Agent, um das Abonnement zu synchronisieren. |
Ereignisse
ComStatus |
Tritt auf, wenn der Merge-Agent Informationen zum Kommunikationsstatus der Synchronisierung zurückgibt. |
Status |
Tritt auf, wenn der Merge-Agent Informationen zum Synchronisierungsstatus zurückgibt. |
Gilt für:
Threadsicherheit
Alle öffentlichen statischen Elemente dieses Typs (Shared in Microsoft Visual Basic) sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.