Angeben von Synchronisierungszeitplänen

In diesem Thema wird beschrieben, wie Synchronisierungszeitpläne in SQL Server 2012 mit SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (RMO) angegeben werden. 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

  • So geben Sie Synchronisierungszeitpläne an mit:

    SQL Server Management Studio

    Transact-SQL

    Replikationsverwaltungsobjekte (RMO)

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 Erstellen eines Pushabonnements und Erstellen eines Pullabonnements.

Ändern Sie die Synchronisierungszeitpläne im Dialogfeld Eigenschaften des Auftragszeitplans. Dieses Dialogfeld ist in SQL Server Management Studio über den Ordner Aufträge und im Detailfenster des Agents im Replikationsmonitor verfügbar. 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>

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

2 Bei Pullabonnements für Oracle-Veröffentlichungen lautet der Name <Publisher>-<DistributionDatabase> und nicht <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 startet aus.

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

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

  7. Geben Sie bei der Auswahl von Wiederholt einen 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 startet aus.

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

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

  6. Geben Sie bei der Auswahl von Wiederholt einen 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 in Management Studio eine Verbindung mit dem Abonnenten 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 startet aus.

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

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

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

  7. Klicken Sie auf OK.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung 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) vererbt 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 Erstellen eines Pullabonnements.

  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 Erstellen eines Pushabonnements.

  2. Führen Sie auf dem Abonnenten sp_addpushsubscription_agent (Transact-SQL) aus. Geben Sie @subscriber, @subscriber_db, @publication und die 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 Pullabonnement für eine Mergeveröffentlichung

  1. Erstellen Sie ein neues Pullabonnement für eine Mergeveröffentlichung. Weitere Informationen finden Sie unter Erstellen eines Pullabonnements.

  2. Führen Sie auf dem Abonnenten sp_addmergepullsubscription_agent aus. Geben Sie @publisher, @publisher_db, @publication und die Windows-Anmeldeinformationen, unter denen der Merge-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 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 Erstellen eines Pushabonnements.

  2. Führen Sie auf dem Abonnenten sp_addmergepushsubscription_agent aus. Geben Sie @subscriber, @subscriber_db, @publication und die Windows-Anmeldeinformationen, unter denen der Merge-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 Merge-Agentauftrag zur Synchronisierung des Abonnements definiert wird.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

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.

HinweisHinweis

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 Erstellen eines Pullabonnements und Erstellen eines Pushabonnements.

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 Erstellen eines Pushabonnements.

  2. Bevor Sie Create aufrufen, 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.

    HinweisHinweis

    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 Erstellen eines Pullabonnements.

  2. Bevor Sie Create aufrufen, 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.

    HinweisHinweis

    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 Erstellen eines Pullabonnements.

  2. Bevor Sie Create aufrufen, 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.

    HinweisHinweis

    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 Erstellen eines Pushabonnements.

  2. Bevor Sie Create aufrufen, 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.

    HinweisHinweis

    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

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Konzepte

Bewährte Methoden für die Replikationssicherheit

Abonnieren von Veröffentlichungen

Synchronisieren eines Pushabonnements

Synchronisieren eines Pullabonnements

Synchronisieren von Daten