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 | |
---|---|---|
MergeSynchronizationAgent | Erstellt eine Instanz der MergeSynchronizationAgent-Klasse. |
Zum Anfang
Eigenschaften
Name | Beschreibung | |
---|---|---|
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 | Infrastruktur | |
DistributorLogin | Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest. | |
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 mithilfe der 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, wenn dieser einen parametrisierten Filter auswertet, der die HOST_NAME-Funktion verwendet, oder legt den Wert fest. | |
InputMessageFile | Infrastruktur | |
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 | Infrastruktur | |
OutputVerboseLevel | Ruft ab oder legt fest, mit welcher Detailgenauigkeit Informationen in die Agentausgabedatei geschrieben werden sollen. | |
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 | Infrastruktur | |
PublisherFailoverPartner | Ruft die Failoverpartnerinstanz von SQL Server ab, die an einer Datenbank-Spiegelungssitzung mit der Veröffentlichungsdatenbank teilnimmt, oder legt diese fest. | |
PublisherLogin | Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Verleger mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest. | |
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 Verleger mithilfe der 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 | Infrastruktur | |
SecurePublisherEncryptedPassword | Infrastruktur | |
SecureSubscriberEncryptedPassword | Infrastruktur | |
Subscriber | Ruft den Namen der Instanz von Microsoft SQL Server ab, die als Abonnent auftritt, 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 ihn fest. | |
SubscriberDatabasePath | Infrastruktur | |
SubscriberDataSourceType | Ruft den Typ der Datenquelle ab, die als Abonnent verwendet wird, oder legt diesen fest. | |
SubscriberEncryptedPassword | Infrastruktur | |
SubscriberLogin | Ruft den Anmeldenamen ab, der beim Herstellen einer Verbindung mit dem Abonnenten mithilfe der SQL Server-Authentifizierung verwendet wird, oder legt diesen fest. | |
SubscriberPassword | Legt das Kennwort fest, das beim Herstellen einer Verbindung mit dem Abonnenten mithilfe der 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. |
Zum Anfang
Methoden
Name | Beschreibung | |
---|---|---|
Abort | Infrastruktur | |
ClearAllTraceFlags | Infrastruktur | |
ClearTraceFlag | Infrastruktur | |
CreateObjRef | (Geerbt von MarshalByRefObject.) | |
Dispose() () () () | Infrastruktur | |
Dispose(Boolean) | Infrastruktur | |
EnableTraceFlag | Infrastruktur | |
Equals | (Geerbt von Object.) | |
Finalize | Infrastruktur (Überschreibt Object. . :: . .Finalize() () () ().) | |
GetHashCode | (Geerbt von Object.) | |
GetLifetimeService | (Geerbt von MarshalByRefObject.) | |
GetType | (Geerbt von Object.) | |
InitializeLifetimeService | (Geerbt von MarshalByRefObject.) | |
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. | |
MemberwiseClone() () () () | (Geerbt von Object.) | |
MemberwiseClone(Boolean) | (Geerbt von MarshalByRefObject.) | |
ProcessMessagesAtPublisher | Infrastruktur | |
ProcessMessagesAtSubscriber | Infrastruktur | |
Synchronize | Startet den Merge-Agent, um das Abonnement zu synchronisieren. | |
ToString | (Geerbt von Object.) |
Zum Anfang
Ereignisse
Name | Beschreibung | |
---|---|---|
ComStatus | Infrastruktur | |
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.