MergeSubscription 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 ein Abonnement für eine Mergeveröffentlichung dar, die beim Verleger registriert wurde.
public ref class MergeSubscription sealed : Microsoft::SqlServer::Replication::Subscription
public sealed class MergeSubscription : Microsoft.SqlServer.Replication.Subscription
type MergeSubscription = class
inherit Subscription
Public NotInheritable Class MergeSubscription
Inherits Subscription
- Vererbung
Beispiele
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";
//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;
try
{
// Connect to the Publisher.
conn.Connect();
// Ensure that the publication exists and that
// it supports push subscriptions.
publication = new MergePublication();
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
publication.ConnectionContext = conn;
if (publication.IsExistingObject)
{
if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPush;
}
// Define the push subscription.
subscription = new MergeSubscription();
subscription.ConnectionContext = conn;
subscription.SubscriberName = subscriberName;
subscription.PublicationName = publicationName;
subscription.DatabaseName = publicationDbName;
subscription.SubscriptionDBName = subscriptionDbName;
subscription.HostName = hostname;
// Set a schedule to synchronize the subscription every 2 hours
// during weekdays from 6am to 10pm.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
subscription.AgentSchedule.FrequencySubDayInterval = 2;
subscription.AgentSchedule.ActiveStartDate = 20051108;
subscription.AgentSchedule.ActiveEndDate = 20071231;
subscription.AgentSchedule.ActiveStartTime = 060000;
subscription.AgentSchedule.ActiveEndTime = 100000;
// Specify the Windows login credentials for the Merge Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
subscription.SynchronizationAgentProcessSecurity.Password = winPassword;
// Create the push subscription.
subscription.Create();
}
else
{
// Do something here if the publication does not exist.
throw new ApplicationException(String.Format(
"The publication '{0}' does not exist on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Implement the appropriate error handling here.
throw new ApplicationException(String.Format(
"The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"
'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription
Try
' Connect to the Publisher.
conn.Connect()
' Ensure that the publication exists and that
' it supports push subscriptions.
publication = New MergePublication()
publication.Name = publicationName
publication.DatabaseName = publicationDbName
publication.ConnectionContext = conn
If publication.IsExistingObject Then
If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPush
End If
' Define the push subscription.
subscription = New MergeSubscription()
subscription.ConnectionContext = conn
subscription.SubscriberName = subscriberName
subscription.PublicationName = publicationName
subscription.DatabaseName = publicationDbName
subscription.SubscriptionDBName = subscriptionDbName
subscription.HostName = hostname
' Set a schedule to synchronize the subscription every 2 hours
' during weekdays from 6am to 10pm.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
subscription.AgentSchedule.FrequencySubDayInterval = 2
subscription.AgentSchedule.ActiveStartDate = 20051108
subscription.AgentSchedule.ActiveEndDate = 20071231
subscription.AgentSchedule.ActiveStartTime = 60000
subscription.AgentSchedule.ActiveEndTime = 100000
' Specify the Windows login credentials for the Merge Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin
subscription.SynchronizationAgentProcessSecurity.Password = winPassword
' Create the push subscription.
subscription.Create()
Else
' Do something here if the publication does not exist.
Throw New ApplicationException(String.Format( _
"The publication '{0}' does not exist on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Implement the appropriate error handling here.
Throw New ApplicationException(String.Format( _
"The subscription to {0} could not be created.", publicationName), ex)
Finally
conn.Disconnect()
End Try
Hinweise
Die MergeSubscription -Klasse wird sowohl mit Pull- als auch Pushabonnements für eine Mergeveröffentlichung verwendet.
Beim Konfigurieren eines Verlegers mit einem Remoteverteiler werden die für alle Parameter angegebenen Werte, einschließlich SynchronizationAgentProcessSecurity, als Nur-Text an den Verteiler gesendet. Sie sollten die Verbindung zwischen dem Verleger und dem zugehörigen Remoteverteiler verschlüsseln, bevor Sie die Create-Methode aufrufen. Weitere Informationen finden Sie unter sp_reinitmergesubscription (Transact-SQL).
Threadsicherheit
Alle öffentlichen statischen (Shared
in Microsoft Visual Basic) Member dieses Typs sind für Multithreadvorgänge sicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Konstruktoren
MergeSubscription() |
Erstellt eine neue Instanz der MergeSubscription-Klasse. |
MergeSubscription(String, String, String, String, ServerConnection) |
Erstellt eine neue Instanz der MergeSubscription-Klasse mit der angegebenen Verbindung zum Verleger und den Eigenschaften, mit denen das Abonnement eindeutig definiert wird. |
Eigenschaften
AgentJobId |
Ruft die ID des Agentauftrags zum Synchronisieren des Abonnements ab. (Geerbt von Subscription) |
AgentOffload |
Ruft ab oder legt fest, ob der Synchronisierungs-Agent auf einem anderen Computer als dem ausgeführt wird, mit dem der Agentauftrag erstellt wurde. Diese Eigenschaft wird für Verteiler, die Microsoft SQL Server 2005 und höher ausführen, nicht mehr unterstützt. (Geerbt von Subscription) |
AgentOffloadServer |
Ruft den Namen des Remotecomputers ab, auf dem der Agent bei Aktivierung des Remote-Agents ausgeführt wird, oder legt ihn fest. (Geerbt von Subscription) |
AgentSchedule |
Ruft den Zeitplan für den Agentauftrag zum Synchronisieren des Abonnements ab. (Geerbt von Subscription) |
CachePropertyChanges |
Ruft ab oder legt fest, ob Änderungen an den Replikationseigenschaften zwischengespeichert oder sofort angewendet werden sollen. (Geerbt von ReplicationObject) |
ConnectionContext |
Ruft die Verbindung mit einer Instanz von Microsoft SQL Server ab oder legt sie fest. (Geerbt von ReplicationObject) |
CreateSyncAgentByDefault |
Ruft ab oder legt fest, ob der Agentauftrag zum Synchronisieren des Abonnements standardmäßig erstellt wird. (Geerbt von Subscription) |
DatabaseName |
Ruft den Namen der Veröffentlichungsdatenbank ab oder legt ihn fest. (Geerbt von Subscription) |
Description |
Ruft eine Textbeschreibung des Mergeabonnements ab oder legt diese fest. |
EnabledForSynchronizationManager |
Gibt an, ob das Abonnement mit dem Microsoft Windows-Synchronisierungs-Manager synchronisiert werden kann. (Geerbt von Subscription) |
HostName |
Ruft den Wert ab, der der HOST_NAME-Funktion bereitgestellt wird, wenn diese Funktion im parametrisierten Zeilenfilter verwendet wird, der die Datenpartition des Abonnenten definiert, oder legt diesen fest. |
IsExistingObject |
Ruft ab, ob das Objekt auf dem Server vorhanden ist. (Geerbt von ReplicationObject) |
Name |
Ruft den Namen ab, der einem vorhandenen Abonnement zugewiesenen ist. (Geerbt von Subscription) |
Priority |
Ruft den relativen Prioritätswert ab, der einem Serverabonnement zugewiesenen ist. |
PublicationName |
Ruft den Namen der Veröffentlichung ab, die das Abonnement abonniert, oder legt diesen fest. (Geerbt von Subscription) |
PublisherSecurity |
Ruft den Sicherheitskontext ab, der vom Merge-Agent verwendet wird, um eine Verbindung mit dem Verleger herzustellen. |
SqlServerName |
Ruft den Namen der Microsoft SQL Server-Instanz ab, mit der dieses Objekt verbunden ist. (Geerbt von ReplicationObject) |
Status |
Ruft den Status des Abonnements ab. (Geerbt von Subscription) |
SubscriberName |
Ruft den Namen der Microsoft SQL Server-Instanz ab, die der Abonnent ist, oder legt diesen fest. (Geerbt von Subscription) |
SubscriberSecurity |
Ruft den Sicherheitskontext ab, mit dem eine Verbindung mit dem Abonnenten hergestellt wird. (Geerbt von Subscription) |
SubscriberType |
Ruft ab oder legt fest, ob das Abonnement ein Client- oder ein Serverabonnement ist. |
SubscriptionDBName |
Ruft den Namen der Datenbank für den Abonnenten ab, der die replizierten Daten empfängt, oder legt ihn fest. (Geerbt von Subscription) |
SubscriptionType |
Ruft ab, ob die Abonnementregistrierung für ein Push- oder Pullabonnement vorgesehen ist. (Geerbt von Subscription) |
SynchronizationAgent |
Ruft eine Instanz der MergeSynchronizationAgent-Klasse ab, die verwendet werden kann, um das Abonnement zu synchronisieren. |
SynchronizationAgentName |
Ruft den Namen des Agentauftrags ab, der zum Synchronisieren des Abonnements erstellt wurde, oder legt ihn fest. (Geerbt von Subscription) |
SynchronizationAgentProcessSecurity |
Ruft den Sicherheitskontext ab, der zum Angeben des Microsoft Windows-Kontos verwendet wird, unter dem der Synchronisierungs-Agent-Auftrag ausgeführt wird, um das Abonnement zu synchronisieren. (Geerbt von Subscription) |
SyncType |
Ruft die Art ab, in der das Abonnement initialisiert wird, oder legt sie fest. (Geerbt von Subscription) |
UseInteractiveResolver |
Ruft ab oder legt fest, ob der interaktive Konfliktlöser während des Synchronisierungsvorgangs verwendet wird. |
UserData |
Ruft eine Objekteigenschaft ab, die es Benutzern ermöglicht, ihre eigenen Daten an das Objekt anzufügen, oder legt sie fest. (Geerbt von ReplicationObject) |
Methoden
CheckValidCreation() |
Überprüft, ob die Replikationserstellung gültig ist. (Geerbt von ReplicationObject) |
CheckValidDefinition(Boolean) |
Gibt an, ob die Abonnementdefinition gültig ist. (Geerbt von Subscription) |
CommitPropertyChanges() |
Sendet alle zwischengespeicherten Eigenschaftsänderungsanweisungen an die Instanz von Microsoft SQL Server. (Geerbt von ReplicationObject) |
Create() |
Erstellt die Abonnementregistrierung beim Verleger. (Geerbt von Subscription) |
Decouple() |
Entkoppelt das Replikationsobjekt, auf das verwiesen wird, vom Server. (Geerbt von ReplicationObject) |
GetChangeCommand(StringBuilder, String, String) |
Gibt den Änderungsbefehl von der Replikation zurück. (Geerbt von ReplicationObject) |
GetCreateCommand(StringBuilder, Boolean, ScriptOptions) |
Gibt den Erstellungsbefehl von der Replikation zurück. (Geerbt von ReplicationObject) |
GetDropCommand(StringBuilder, Boolean) |
Gibt den Löschbefehl von der Replikation zurück. (Geerbt von ReplicationObject) |
InternalRefresh(Boolean) |
Initiiert eine interne Aktualisierung von der Replikation. (Geerbt von ReplicationObject) |
Load() |
Lädt die Eigenschaften eines vorhandenen Objekts vom Server. (Geerbt von ReplicationObject) |
LoadProperties() |
Lädt die Eigenschaften eines vorhandenen Objekts vom Server. (Geerbt von ReplicationObject) |
Refresh() |
Lädt die Eigenschaften des Objekts erneut. (Geerbt von ReplicationObject) |
Reinitialize(Boolean) |
Markiert das Mergeabonnement für die erneute Initialisierung. |
Remove() |
Löscht die Abonnementregistrierung beim Verleger und entfernt Replikationsobjekte beim Abonnenten für ein Pushabonnement. (Geerbt von Subscription) |
Script(ScriptOptions) |
Gibt ein Transact-SQL-Skript zurück, das zum Erstellen oder Löschen des Abonnements verwendet werden kann. (Geerbt von Subscription) |
StopSynchronizationJob() |
Versucht, einen gerade ausgeführten Merge-Agent-Auftrag zu beenden, der zurzeit das Abonnement synchronisiert. |
SynchronizeWithJob() |
Startet den Agent-Auftrag zur Synchronisierung des Abonnements. |