Freigeben über


MergeSubscription Klasse

Definition

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.

Gilt für:

Weitere Informationen