Angeben von Synchronisierungszeitplänen

In diesem Thema wird beschrieben, wie Sie Synchronisierungszeitpläne in SQL Server 2014 mithilfe von SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (Replication Management Objects, RMO) angeben. Während der Erstellung eines Abonnements kann ein Synchronisierungszeitplan definiert werden, der steuert, wann der Replikations-Agent für das Abonnement ausgeführt wird. Wenn Sie keine Zeitplanungsparameter angeben, wird der Standardzeitplan für das Abonnement verwendet.

Abonnements werden durch den Verteilungs-Agent (für Momentaufnahme- und Transaktionsveröffentlichungen) oder durch den Merge-Agent (für Mergeveröffentlichungen) synchronisiert. Agents können kontinuierlich, bei Bedarf oder nach einem Zeitplan ausgeführt werden.

In diesem Thema

Verwendung von SQL Server Management Studio

Geben Sie Synchronisierungszeitpläne im Assistenten für neue Abonnements auf der Seite Synchronisierungszeitplan an. Weitere Informationen zum Zugreifen auf diesen Assistenten finden Sie unter Create a Push Subscription und Create a Pull Subscription.

Ändern Von Synchronisierungszeitplänen im Dialogfeld "Auftragsplaneigenschaften ", das im Ordner "Aufträge " in SQL Server Management Studio und in den Agentdetailsfenstern im Replikationsmonitor verfügbar ist. Informationen zum Starten des Replikationsmonitors finden Sie unter Starten des Replikationsmonitors.

Wenn Sie die Zeitpläne über den Ordner Aufträge angeben, verwenden Sie die folgende Tabelle, um den Auftragsnamen des Agents zu ermitteln.

Agent Auftragsname
Merge-Agent für Pullabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer>
Merge-Agent für Pushabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Verteilungs-Agent für Pushabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer> 1
Verteilungs-Agent für Pullabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID> 2
Verteilungs-Agent für Pushabonnements für Nicht-SQL Server-Abonnenten <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>

1Bei Pushabonnements für Oracle-Veröffentlichungen lautet der Name <Publisher>-<Publisher> statt <Publisher>-<PublicationDatabase>

2Bei Pullabonnements für Oracle-Veröffentlichungen lautet der Name <Publisher>-<DistributionDatabase> statt <Publisher>-<PublicationDatabase>

So geben Sie Synchronisierungszeitpläne an

  1. Wählen Sie im Assistenten für neue Abonnements auf der Seite Synchronisierungszeitplan für jedes Abonnement, das Sie erstellen, einen der folgenden Werte aus der Dropdownliste Agentzeitplan aus:

    • Fortlaufend ausführen

    • Nur bedarfsgesteuert ausführen

    • <Zeitplan definieren…>

  2. Geben Sie bei der Auswahl von <Zeitplan definieren…> im Dialogfeld Eigenschaften des Auftragszeitplans einen Zeitplan an, und klicken Sie dann auf OK.

  3. Schließen Sie den Assistenten ab.

So ändern Sie einen Synchronisierungszeitplan für ein Pushabonnement im Replikationsmonitor

  1. Erweitern Sie im linken Bereich des Replikationsmonitors eine Verlegergruppe, erweitern Sie einen Verleger, und klicken Sie dann auf eine Veröffentlichung.

  2. Klicken Sie auf die Registerkarte Alle Abonnements .

  3. Klicken Sie mit der rechten Maustaste auf ein Abonnement, und klicken Sie dann auf Details anzeigen.

  4. Klicken Sie im Fenster Abonnement < SubscriptionName> auf Aktion und klicken Sie dann auf <AgentName> Auftragseigenschaften.

  5. Klicken Sie im Dialogfeld Auftragseigenschaften – <JobName> auf der Seite Zeitpläne auf Bearbeiten.

  6. Wählen Sie im Dialogfeld Eigenschaften des Auftragszeitplans einen Wert aus der Dropdownliste Zeitplantyp aus:

    • Um eine fortlaufende Ausführung des Agents anzugeben, wählen Sie Automatisch starten, wenn der SQL Server-Agent startetaus.

    • Um eine Ausführung des Agents nach einem Zeitplan anzugeben, wählen Sie Wiederholtaus.

    • Um eine bedarfsgesteuerte Ausführung des Agents anzugeben, wählen Sie Einmalaus.

  7. Geben Sie bei der Auswahl von Wiederholteinen Zeitplan für den Agent an.

  8. Klicken Sie auf OK.

So ändern Sie einen Synchronisierungszeitplan für ein Pushabonnement in Management Studio

  1. Stellen Sie in Management Studio eine Verbindung mit dem Verteiler her, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner SQL Server-Agent und anschließend den Ordner Aufträge .

  3. Klicken Sie mit der rechten Maustaste auf den Auftrag für den Verteilungs-Agent oder Merge-Agent, der dem Abonnement zugeordnet ist, und klicken Sie dann auf Eigenschaften.

  4. Klicken Sie im Dialogfeld Auftragseigenschaften – <JobName> auf der Seite Zeitpläne auf Bearbeiten.

  5. Wählen Sie im Dialogfeld Eigenschaften des Auftragszeitplans einen Wert aus der Dropdownliste Zeitplantyp aus:

    • Um eine fortlaufende Ausführung des Agents anzugeben, wählen Sie Automatisch starten, wenn der SQL Server-Agent startetaus.

    • Um eine Ausführung des Agents nach einem Zeitplan anzugeben, wählen Sie Wiederholtaus.

    • Um eine bedarfsgesteuerte Ausführung des Agents anzugeben, wählen Sie Einmalaus.

  6. Geben Sie bei der Auswahl von Wiederholteinen Zeitplan für den Agent an.

  7. Klicken Sie auf OK.

So ändern Sie einen Synchronisierungszeitplan für ein Pullabonnement in Management Studio

  1. Stellen Sie mit dem Abonnenten in SQL Server Management Studio eine Verbindung her, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner SQL Server-Agent und anschließend den Ordner Aufträge .

  3. Klicken Sie mit der rechten Maustaste auf den Auftrag für den Verteilungs-Agent oder Merge-Agent, der dem Abonnement zugeordnet ist, und klicken Sie dann auf Eigenschaften.

  4. Klicken Sie im Dialogfeld Auftragseigenschaften – <JobName> auf der Seite Zeitpläne auf Bearbeiten.

  5. Wählen Sie im Dialogfeld Eigenschaften des Auftragszeitplans einen Wert aus der Dropdownliste Zeitplantyp aus:

    • Um eine fortlaufende Ausführung des Agents anzugeben, wählen Sie Automatisch starten, wenn der SQL Server-Agent startetaus.

    • Um eine Ausführung des Agents nach einem Zeitplan anzugeben, wählen Sie Wiederholtaus.

    • Um eine bedarfsgesteuerte Ausführung des Agents anzugeben, wählen Sie Einmalaus.

  6. Geben Sie bei der Auswahl von Wiederholteinen Zeitplan für den Agent an.

  7. Klicken Sie auf OK.

Verwenden von Transact-SQL

Sie können Synchronisierungszeitpläne mit gespeicherten Replikationsprozeduren programmgesteuert definieren. Welche gespeicherten Prozeduren Sie verwenden, hängt vom Typ der Replikation und vom Typ des Abonnements (Pull oder Push) ab.

Ein Zeitplan wird durch die folgenden Zeitplanungsparameter definiert, deren Verhalten von sp_add_schedule (Transact-SQL) geerbt wird:

  • @frequency_type – der Typ der Frequenz, der bei der Planung des Agents verwendet wird.

  • @frequency_interval – der Tag der Woche, an dem ein Agent ausgeführt wird.

  • @frequency_relative_interval – die Woche eines gegebenen Monats, in der der Agent einmal monatlich ausgeführt wird.

  • @frequency_recurrence_factor – die Anzahl der Frequenztypeinheiten, die zwischen den einzelnen Synchronisierungen liegen.

  • @frequency_subday – die Frequenzeinheit, wenn der Agent täglich mehrmals ausgeführt wird.

  • @frequency_subday_interval – die Anzahl von Frequenzeinheiten, die zwischen den einzelnen Ausführungen liegen, wenn der Agent täglich mehrmals ausgeführt wird.

  • @active_start_time_of_day – die früheste Uhrzeit an einem gegebenen Tag, zu der eine Agent-Ausführung gestartet wird.

  • @active_end_time_of_day – die späteste Uhrzeit an einem gegebenen Tag, zu der eine Agent-Ausführung gestartet wird.

  • @active_start_date – der erste Tag, an dem der Agentzeitplan gültig ist.

  • @active_end_date – der letzte Tag, an dem der Agentzeitplan gültig ist.

So definieren Sie den Synchronisierungszeitplan für ein Pullabonnement für eine Transaktionsveröffentlichung

  1. Erstellen Sie ein neues Pullabonnement für eine Transaktionsveröffentlichung. Weitere Informationen finden Sie unter Create a Pull Subscription.

  2. Führen Sie auf dem Abonnenten sp_addpullsubscription_agent (Transact-SQL) aus. Geben Sie @publisher, @publisher_db, @publication und die Microsoft Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent auf dem Abonnenten ausgeführt wird, für @job_name und @job_password an. Geben Sie die oben beschriebenen Synchronisierungsparameter an, mit denen der Zeitplan für den Verteilungs-Agentauftrag zur Synchronisierung des Abonnements definiert wird.

So definieren Sie den Synchronisierungszeitplan für ein Pushabonnement für eine Transaktionsveröffentlichung

  1. Erstellen Sie ein neues Pushabonnement für eine Transaktionsveröffentlichung. Weitere Informationen finden Sie unter Create a Push Subscription.

  2. Führen Sie auf dem Abonnenten sp_addpushsubscription_agent (Transact-SQL) aus. Geben Sie @subscriber, @subscriber_db, @publicationund die Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent auf dem Abonnenten ausgeführt wird, für @job_name und @job_passwordan. Geben Sie die oben beschriebenen Synchronisierungsparameter an, mit denen der Zeitplan für den Verteilungs-Agentauftrag zur Synchronisierung des Abonnements definiert wird.

So definieren Sie den Synchronisierungszeitplan für ein Pullabonnement für eine Mergeveröffentlichung

  1. Erstellen Sie ein neues Pullabonnement für eine Mergeveröffentlichung. Weitere Informationen finden Sie unter Create a Pull Subscription.

  2. Führen Sie auf dem Abonnenten sp_addmergepullsubscription_agentaus. Geben Sie @publisher, @publisher_db, @publicationund die Windows-Anmeldeinformationen, unter denen der Merge-Agent auf dem Abonnenten ausgeführt wird, für @job_name und @job_passwordan. Geben Sie die oben beschriebenen Synchronisierungsparameter an, mit denen der Zeitplan für den Merge-Agentauftrag zur Synchronisierung des Abonnements definiert wird.

So definieren Sie den Synchronisierungszeitplan für ein Pushabonnement für eine Mergeveröffentlichung

  1. Erstellen Sie ein neues Pushabonnement für eine Mergeveröffentlichung. Weitere Informationen finden Sie unter Create a Push Subscription.

  2. Führen Sie auf dem Abonnenten sp_addmergepushsubscription_agentaus. Geben Sie @subscriber, @subscriber_db, @publicationund die Windows-Anmeldeinformationen, unter denen der Merge-Agent auf dem Abonnenten ausgeführt wird, für @job_name und @job_passwordan. Geben Sie die oben beschriebenen Synchronisierungsparameter an, mit denen der Zeitplan für den Merge-Agentauftrag zur Synchronisierung des Abonnements definiert wird.

Verwenden von Replikationsverwaltungsobjekten (RMO)

Die Replikation verwendet den SQL Server-Agent, um Aufträge für regelmäßig auftretende Aktivitäten wie die Momentaufnahmegenerierung und die Abonnementsynchronisierung zu planen. Sie können Replikationsverwaltungsobjekte (RMO) programmgesteuert verwenden, um Zeitpläne für Replikations-Agentaufträge anzugeben.

Hinweis

Wenn Sie ein Abonnement erstellen und den Wert false für CreateSyncAgentByDefault (das Standardverhalten für Pullabonnements) angeben, wird der Agentauftrag nicht erstellt und die Zeitplanungseigenschaften werden ignoriert. In diesem Fall muss der Synchronisierungszeitplan von der Anwendung bestimmt werden. Weitere Informationen finden Sie unter Create a Pull Subscription und Create a Push Subscription.

So definieren Sie einen Zeitplan des Replikations-Agents, wenn Sie ein Pushabonnement für eine Transaktionsveröffentlichung erstellen

  1. Erstellen Sie eine Instanz der TransSubscription -Klasse für das Abonnement, das Sie erstellen. Weitere Informationen finden Sie unter Create a Push Subscription.

  2. Bevor Sie Createaufrufen, legen Sie mindestens eines der folgenden Felder der AgentSchedule -Eigenschaft fest:

    • FrequencyType – der Typ der Frequenz (z. B. täglich oder wöchentlich), den Sie beim Planen des Agents verwenden.

    • FrequencyInterval – der Tag der Woche, an dem ein Agent ausgeführt wird.

    • FrequencyRelativeInterval – die Woche eines gegebenen Monats, in der der Agent einmal monatlich ausgeführt wird.

    • FrequencyRecurrenceFactor – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Synchronisierungen liegen.

    • FrequencySubDay – die Einheit für die Frequenz, wenn der Agent täglich mehrmals ausgeführt wird.

    • FrequencySubDayInterval – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Ausführungen liegen, wenn der Agent mehrmals täglich ausgeführt wird.

    • ActiveStartTime – der früheste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveEndTime – der späteste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveStartDate – der erste Tag, an dem der Agentzeitplan in Kraft ist.

    • ActiveEndDate – der letzte Tag, an dem der Agentzeitplan in Kraft ist.

    Hinweis

    Wenn Sie keine dieser Eigenschaften angeben, wird ein Standardwert festgelegt.

  3. Rufen Sie die Create -Methode auf, um das Abonnement zu erstellen.

So definieren Sie einen Zeitplan des Replikations-Agents, wenn Sie ein Pullabonnement für eine Transaktionsveröffentlichung erstellen

  1. Erstellen Sie eine Instanz der TransPullSubscription -Klasse für das Abonnement, das Sie erstellen. Weitere Informationen finden Sie unter Create a Pull Subscription.

  2. Bevor Sie Createaufrufen, legen Sie mindestens eines der folgenden Felder der AgentSchedule -Eigenschaft fest:

    • FrequencyType – der Typ der Frequenz (z. B. täglich oder wöchentlich), den Sie beim Planen des Agents verwenden.

    • FrequencyInterval – der Tag der Woche, an dem ein Agent ausgeführt wird.

    • FrequencyRelativeInterval – die Woche eines bestimmten Monats, in der der Agent einmal monatlich ausgeführt wird.

    • FrequencyRecurrenceFactor – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Synchronisierungen liegen.

    • FrequencySubDay – die Einheit für die Frequenz, wenn der Agent täglich mehrmals ausgeführt wird.

    • FrequencySubDayInterval – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Ausführungen liegen, wenn der Agent mehrmals täglich ausgeführt wird.

    • ActiveStartTime – der früheste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveEndTime – der späteste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveStartDate – der erste Tag, an dem der Agentzeitplan in Kraft ist.

    • ActiveEndDate – der letzte Tag, an dem der Agentzeitplan in Kraft ist.

    Hinweis

    Wenn Sie keine dieser Eigenschaften angeben, wird ein Standardwert festgelegt.

  3. Rufen Sie die Create -Methode auf, um das Abonnement zu erstellen.

So definieren Sie einen Zeitplan des Replikations-Agents, wenn Sie ein Pullabonnement für eine Mergeveröffentlichung erstellen

  1. Erstellen Sie eine Instanz der MergePullSubscription -Klasse für das Abonnement, das Sie erstellen. Weitere Informationen finden Sie unter Create a Pull Subscription.

  2. Bevor Sie Createaufrufen, legen Sie mindestens eines der folgenden Felder der AgentSchedule -Eigenschaft fest:

    • FrequencyType – der Typ der Frequenz (z. B. täglich oder wöchentlich), den Sie beim Planen des Agents verwenden.

    • FrequencyInterval – der Tag der Woche, an dem ein Agent ausgeführt wird.

    • FrequencyRelativeInterval – die Woche eines bestimmten Monats, in der der Agent einmal monatlich ausgeführt wird.

    • FrequencyRecurrenceFactor – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Synchronisierungen liegen.

    • FrequencySubDay – die Einheit für die Frequenz, wenn der Agent täglich mehrmals ausgeführt wird.

    • FrequencySubDayInterval – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Ausführungen liegen, wenn der Agent mehrmals täglich ausgeführt wird.

    • ActiveStartTime – der früheste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveEndTime – der späteste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveStartDate – der erste Tag, an dem der Agentzeitplan in Kraft ist.

    • ActiveEndDate – der letzte Tag, an dem der Agentzeitplan in Kraft ist.

    Hinweis

    Wenn Sie keine dieser Eigenschaften angeben, wird ein Standardwert festgelegt.

  3. Rufen Sie die Create -Methode auf, um das Abonnement zu erstellen.

So definieren Sie einen Zeitplan des Replikations-Agents, wenn Sie ein Pushabonnement für eine Mergeveröffentlichung erstellen

  1. Erstellen Sie eine Instanz der MergeSubscription -Klasse für das Abonnement, das Sie erstellen. Weitere Informationen finden Sie unter Create a Push Subscription.

  2. Bevor Sie Createaufrufen, legen Sie mindestens eines der folgenden Felder der AgentSchedule -Eigenschaft fest:

    • FrequencyType – der Typ der Frequenz (z. B. täglich oder wöchentlich), den Sie beim Planen des Agents verwenden.

    • FrequencyInterval – der Tag der Woche, an dem ein Agent ausgeführt wird.

    • FrequencyRelativeInterval – die Woche eines bestimmten Monats, in der der Agent einmal monatlich ausgeführt wird.

    • FrequencyRecurrenceFactor – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Synchronisierungen liegen.

    • FrequencySubDay – die Einheit für die Frequenz, wenn der Agent täglich mehrmals ausgeführt wird.

    • FrequencySubDayInterval – die Anzahl der Einheiten für die Frequenz, die zwischen den einzelnen Ausführungen liegen, wenn der Agent mehrmals täglich ausgeführt wird.

    • ActiveStartTime – der früheste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveEndTime – der späteste Zeitpunkt an einem bestimmten Tag, zu dem eine Agent-Ausführung gestartet wird.

    • ActiveStartDate – der erste Tag, an dem der Agentzeitplan in Kraft ist.

    • ActiveEndDate – der letzte Tag, an dem der Agentzeitplan in Kraft ist.

    Hinweis

    Wenn Sie keine dieser Eigenschaften angeben, wird ein Standardwert festgelegt.

  3. Rufen Sie die Create -Methode auf, um das Abonnement zu erstellen.

Beispiel (RMO)

In diesem Beispiel werden ein Pushabonnement für eine Mergeveröffentlichung erstellt und der Zeitplan angegeben, mit dem das Abonnement synchronisiert wird.

// 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(subscriberName);

// 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(subscriberName)

' 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

Weitere Informationen

Bewährte Methoden für die Replikationssicherheit
Abonnieren von Veröffentlichungen
Synchronisieren eines Pushabonnements
Synchronisieren eines Pullabonnements
Synchronisieren von Daten