Sales Orders-Beispiel für die Mergereplikation

Aktualisiert: 14. April 2006

Diese Infodatei beschreibt detailliert, wie Sie das Sales Orders-Beispiel installieren und ausführen. Die Datei enthält auch Einzelheiten zu bekannten Problemen in diesem Beispiel.

Szenario

Dieses Beispiel beschreibt eine Mergereplikationstopologie für die Übermittlung von Daten an mobile Benutzer und zeigt, mit welchen Programmierbarkeitsfeatures die Mergereplikation in SQL Server 2005 ausgestattet ist. Bei dem Beispiel handelt es sich um eine auf Windows Forms basierende Anwendung, die es mithilfe standardmäßiger Microsoft-Datenzugriffstechnologien und der Mergereplikation einer Vertriebsperson ermöglicht, ihre lokal gespeicherten Daten zu verwalten und in regelmäßigen Abständen mit der Hauptverwaltung zu synchronisieren. Dieses Beispiel wird nur für Abonnenten unterstützt, die alle Editionen von SQL Server 2005 ausführen. Die Publikation unterstützt außerdem SQL Server Compact Edition-Abonnenten. Weitere Informationen zu diesen Beispielszenario finden Sie unter Sales Orders Sample Scenario.

Sprachen

  • C#
  • Transact-SQL

Features

Das Sales Orders-Beispiel veranschaulicht die folgenden Features der Mergereplikation:

  • Replikationsverwaltungsobjekte (RMO)
  • Parametrisierte Zeilenfilter
  • Vorausberechnete Partitionen
  • Partitionierter Snapshot auf Clientanforderung
  • Artikeltypbasierte Leistungsoptimierungen
  • Abonnenten von SQL Server Compact Edition und Express Edition
  • Automatische Verwaltung des Identitätsbereichs
  • Geschäftslogikhandler
  • Websynchronisierung (optional)

Weitere Informationen zu diesem Beispiel und den darin beschriebenen Replikationsfeatures finden Sie unter Sales Orders Sample Implementation Details.

Voraussetzungen

Stellen Sie vor dem Ausführen des Beispiels sicher, dass die folgende Software installiert ist:

  • SQL Server 2005 mit Service Pack 1 (SP1), einschließlich der folgenden optional installierten Komponenten:
    • SQL Server-Datenbankdienste (einschließlich Replikation)
    • Komponenten zur Clientkonnektivität
    • Programmiermodelle
    • Entwicklungstools (einschließlich SDK)
    • Die OLTP-Beispieldatenbank AdventureWorks. Diese Beispieldatenbank ist im Lieferumfang von SQL Server 2005 enthalten und auch im SQL Server Developer Center verfügbar.
    • Die Beispiele zu SQL Server 2005. Diese Beispiele sind in SQL Server 2005 enthalten und außerdem im SQL Server Developer Center verfügbar. Weitere Informationen finden Sie unter Installieren von Beispielen.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Weitere Informationen finden Sie unter Installieren des .NET Framework SDK.
    ms160955.note(de-de,SQL.90).gifHinweis:
    Zum Generieren des Anfangssnapshots muss SQL Server 2005 SP1 auf dem Verleger angewendet werden. Soll dieses Beispiel auf einem SQL Server 2005-Verleger verwendet werden, ohne dass SP1 angewendet wurde, müssen Sie zuerst die FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID FOREIGN KEY-Einschränkung für die SalesOrderHeader-Tabelle löschen und anschließend ohne die ON DELETE CASCADE-Klausel neu erstellen.

Erforderliche Berechtigungen

Die zum Konfigurieren und Ausführen des Sales Orders-Beispiels erforderlichen Berechtigungen basieren auf Replikationssicherheitsanforderungen und lauten wie folgt:

  • Um die Datei InstallSalesOrdersSample.bat ausführen zu können, muss Ihr Windows-Konto ein Mitglied der festen Serverrolle sysadmin auf dem Verleger sein. InstallSalesOrdersSample.bat konfiguriert die Replikation, erstellt die AdvWorksSalesOrders-Publikation und generiert den Anfangssnapshot.
  • Im Sales Orders-Beispiel werden verschiedene Datenbankmodul- und Replikationsaufgaben, z. B. das Erstellen der AdventureWorksLocal-Datenbank, das Erstellen des lokalen Abonnements und das Ausführen des Merge-Agents zum Initialisieren, Neuinitialisieren oder Synchronisieren des Abonnements, ausgeführt. Damit die ausführbare Datei des Beispiels (SalesOrders.exe) erfolgreich auf dem Abonnenten ausgeführt werden kann, muss Ihr Windows-Konto mindestens über CREATE DATABASE-Berechtigungen auf dem Abonnenten verfügen.
    ms160955.note(de-de,SQL.90).gifHinweis:
    Wenn die lokale Datenbank und das Abonnement vorhanden sind, muss Ihr Windows-Konto zumindest ein Mitglied der festen Datenbankrolle db_owner in der AdventureWorksLocal-Datenbank für den Abonnenten sein, um die Anwendung ausführen zu können.
  • Damit das Abonnement initialisiert und mit dem Verleger synchronisiert werden kann, muss das Windows-Konto, das zum Herstellen der Verbindung mit dem Verleger (bzw. mit dem Webserver, falls die Synchronisierung über das Web erfolgen soll) verwendet wird, die folgenden Anforderungen erfüllen:
    • Das Konto muss auf dem Verleger einen gültigen Anmeldenamen haben, der einem Benutzer in der Publikationsdatenbank zugeordnet ist.
    • Das Konto muss auf dem Verteiler einen gültigen Anmeldenamen haben, der einem Benutzer in der Verteilungsdatenbank (des Gastbenutzers) zugeordnet ist.
    • Das Konto muss Mitglied der Publikationszugriffsliste (PAL) für die AdvWorksSalesOrders-Publikation sein.

Erstellen und Konfigurieren des Beispiels

Zum Erstellen des Beispielprojekts und Konfigurieren der Replikationstopologie gehen Sie wie folgt vor:

  • Führen Sie auf dem Verleger das Skript für die Replikationsinstallation aus.
  • (Optional) Konfigurieren Sie den IIS-Server (Internetinformationsdienste) für die Unterstützung der Websynchronisierung für die Mergereplikation. Falls Sie dies unterlassen, können Sie das Websynchronisierungsfeature nicht für das Beispiel verwenden.
  • Ändern Sie auf dem Abonnenten die Konfigurationseinstellungen in der app.config-Datei des Beispiels.
  • Erstellen Sie das Beispiel auf dem Abonnenten mithilfe von Visual Studio 2005 oder mit dem .NET Framework 2.0 SDK.
  • Legen Sie auf dem Abonnenten eine Kopie der BusinessLogic.dll-Assembly in das Verzeichnis C:\Programme\Microsoft SQL Server\90\COM. Falls Sie mit der Websynchronisierung arbeiten, müssen Sie auch eine Kopie von BusinessLogic.dll im Verzeichnis C:\Programme\Microsoft SQL Server\90\COM auf dem Webserver platzieren.

So konfigurieren Sie das Sales Orders-Beispiel auf dem Verleger

  1. Stellen Sie sicher, dass die AdventureWorks-Beispieldatenbank installiert und die Datenbank angefügt wurde. Falls die Datenbank nicht angefügt ist, schlagen Sie unter Installieren der Beispieldatenbanken und Beispiele für AdventureWorks in der SQL Server-Onlinedokumentation nach.

  2. Stellen Sie sicher, dass die Beispiele für das SQL Server-Datenbankmodul installiert wurden.

    Weitere Informationen finden Sie unter Installieren von Beispielen.

  3. Stellen Sie sicher, dass der SQL Server-Agent ausgeführt wird. Den Status dieses Dienstes können Sie im Objekt-Explorer in SQL Server Management Studio anzeigen. Von dort aus können Sie diesen Dienst auch starten.

  4. Navigieren Sie zum Installationsverzeichnis der Skripts für das Sales Orders-Beispiel. Dies ist standardmäßig C:\Programme\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts.

  5. (Optional) Konfigurieren Sie SSL (Configure Secure Sockets Layer) auf dem Verleger oder auf dem für die Websynchronisierung verwendeten Server. SSL wird für die Kommunikation zwischen dem IIS-Server und allen Abonnenten benötigt. Geben Sie zum Konfigurieren von SSL ein Serverzertifikat an, das der IIS-Server verwenden soll.

  6. Führen Sie InstallSalesOrdersSample.bat aus, und geben Sie, wenn Sie dazu aufgefordert werden, den Anmeldenamen (mit Unterscheidung nach Groß-/Kleinschreibung im Format "DOMAIN\login") und das Kennwort für das Windows-Konto ein, unter dem der Snapshot-Agent ausgeführt wird. Damit wird das Dienstprogramm sqlcmd.exe zur Ausführung von CreateAdvWorksSalesOrdersPublication.sql veranlasst, welches Folgendes durchführt:

    • Überprüft, ob die Replikation auf dem lokalen Server konfiguriert wurde. Falls dies nicht der Fall ist, wird die Replikation als Verleger mit lokalem Verteiler konfiguriert, der die Verteilungsdatenbank verwendet.
    • Löscht die für den Datenzugriff auf dem Client verwendeten gespeicherten Prozeduren und benutzerdefinierten Funktionen und erstellt sie neu.
    • Löscht die AdvWorksSalesOrders-Publikation und erstellt sie neu.
    • Fügt der Publikation Artikel hinzu.
    • Registriert den Geschäftslogikhandler beim Verteiler.
    • Startet den Snapshot-Agent zum Generieren des Anfangssnapshots.

    Die Batchdatei kann auch die automatische Konfiguration eines virtuellen Verzeichnisses auf dem Verteiler zur Unterstützung der Websynchronisierung durchführen. Falls Sie sich entscheiden, das virtuelle Verzeichnis auf dem Verleger nicht während der Installation zu konfigurieren, oder falls Sie beabsichtigen, einen separaten Webserver zu verwenden, müssen Sie den Assistenten zum Konfigurieren der Websynchronisierung ausführen, bevor Sie auf die Websynchronisierungsfeatures des Beispiels zugreifen.

  7. (Optional) Führen Sie den Assistenten zum Konfigurieren der Websynchronisierung aus, um einen IIS-Server für die Unterstützung der Websynchronisierung zu konfigurieren. Diesen Schritt können Sie auslassen, wenn das virtuelle Verzeichnis von InstallSalesOrdersSample.bat erfolgreich erstellt wurde oder wenn die Websynchronisierung nicht verwendet wird. Umfassende Informationen zum Verwenden dieses Assistenten finden Sie unter Vorgehensweise: Konfigurieren von IIS für die Websynchronisierung.

  8. Stellen Sie vor dem Fortfahren sicher, dass der Snapshot-Agentauftrag für die AdvWorksSalesOrders-Publikation erfolgreich abgeschlossen wurde. Der Status dieses Auftrages kann mithilfe des Replikationsmonitors angezeigt werden. Informationen zum Anzeigen des Status eines Snapshot-Agentauftrags im Replikationsmonitor finden Sie unter dem Thema Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einer Publikation zugeordneten Agents (Replikationsmonitor) in der SQL Server-Onlinedokumentation.

So erstellen und konfigurieren Sie das Sales Orders-Beispiel auf dem Abonnenten

  1. Navigieren Sie an der Eingabeaufforderung zum Verzeichnis, in dem die SQL Server 2005-Beispiele installiert wurden. Dies ist standardmäßig C:\Programme\Microsoft SQL Server\90\Samples.

  2. Führen Sie an einer .NET Framework- bzw. einer Microsoft Visual Studio 2005-Eingabeaufforderung Folgendes aus:

    sn -k SampleKey.snk

    ms160955.note(de-de,SQL.90).gifHinweis:
    Sie können diesen Schritt auslassen, wenn dieser Schlüssel bereits zuvor für ein anderes Beispiel erstellt wurde.
  3. Navigieren Sie zum Installationsverzeichnis der Projektmappe des Sales Orders-Beispiels in Microsoft Visual C#. Dies ist standardmäßig C:\Programme\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\CS.

  4. Öffnen Sie die Projektmappendatei SalesOrders.sln in Visual Studio 2005.

  5. Erstellen Sie das Projekt.

  6. Bearbeiten Sie im Projektausgabeordner die Datei SalesOrders.exe.config, und nehmen Sie folgende Änderungen vor:

    • Ersetzen Sie den Wert des Subscriber-Schlüssels durch den Namen des lokalen Servers.
    • Ersetzen Sie den Wert des Publisher-Schlüssels durch den Namen des Servers, der zuvor als Verteiler konfiguriert wurde.
    • (Optional) Ersetzen Sie den Wert des WebSynchronizationUrl-Schlüssels, wenn mithilfe der Websynchronisierung eine Verbindung zum Verleger hergestellt wird. Dies kann auch zur Laufzeit geschehen.
    • (Optional) Legen Sie mithilfe des SyncWhenConnectedInterval-Schlüssels das Intervall (in Sekunden) zwischen den Synchronisierungen fest, wenn die Funktionalität der Synchronisierung bei bestehender Verbindung verwendet wird.
    ms160955.note(de-de,SQL.90).gifHinweis:
    Die Replikation bietet keine Unterstützung von localhost für Server-Namen.
  7. Legen Sie eine Kopie der BusinessLogic.dll-Assembly in das Verzeichnis C:\Programme\Microsoft SQL Server\90\COM.

  8. (Optional) Legen Sie bei Verwendung der Websynchronisierung eine Kopie der BusinessLogic.dll-Assembly im Verzeichnis C:\Programme\Microsoft SQL Server\90\COM auf dem Webserver ab.

Ausführen des Beispiels

So führen Sie das Sales Orders-Beispiel aus und synchronisieren die Daten

  1. Stellen Sie sicher, dass auf dem Verleger und dem Abonnenten (TCP/IP oder Named Pipes) Remoteverbindungen aktiviert sind und dass der SQL Server-Agent-Dienst ausgeführt wird.

  2. (Optional) Testen Sie die Websynchronisierungsverbindung auf dem Abonnenten. Folgen Sie hierzu den Anleitungen im Abschnitt zum Konfigurieren von Clientzertifikaten auf dem Abonnenten in How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming), um im Diagnosemodus eine Verbindung zum Webserver herstellen.

    ms160955.note(de-de,SQL.90).gifHinweis:
    Wenn während der Websynchronisierung ein HTTP-Fehler auftritt, öffnen Sie Internet Explorer, und klicken Sie im Menü Extras auf Internetoptionen, Verbindungen und LAN-Einstellungen. Stellen Sie sicher, dass die Option Automatische Suche der Einstellungen deaktiviert ist.
  3. Starten Sie SalesOrders.exe über Visual Studio 2005 oder von der Eingabeaufforderung. Beim erstmaligen Ausführen der Anwendung werden die Abonnementdatenbank und das Abonnement erstellt. Außerdem wird der Merge-Agent gestartet, um das Abonnement zu initialisieren.

  4. Nachdem die Abonnementdaten initialisiert wurden, wird das Sales Orders-Formular geladen, das eine Liste bereits vorhandener Aufträge enthält, die zur Vertriebsperson "adventure-works\garrett1" gehören.

  5. Mithilfe des Sales Orders-Formulars können Sie die folgenden Änderungen an den Auftragsdaten vornehmen:

    • Verkaufsauftragsinformationen bearbeiten
    • Einem Verkaufsauftrag einen neuen Artikel hinzufügen
    • Einen Artikel aus einem Verkaufsauftrag löschen
    • Die Bestellmenge für einen bestimmten Artikel in einem Verkaufsauftrag ändern
  6. Wählen Sie im Menü Synchronisieren eine Synchronisierungsmethode für die Synchronisierung des Abonnements aus.

  7. (Optional) Aktivieren Sie Synchronize When Connected, um das Abonnement automatisch zu synchronisieren. Legen Sie mithilfe des SyncWhenConnectedInterval-Schlüssels in der app.config-Datei das Intervall für die Hintergrundsynchronisierung fest.

    ms160955.note(de-de,SQL.90).gifHinweis:
    Das Feature Synchronize When Connected steht beim Ausführen auf Microsoft -Plattformen nicht zur Verfügung. Weitere Informationen finden Sie unter Sales Orders Sample Implementation Details.

So verwenden Sie erweiterte Synchronisierungsoptionen des Sales Order-Beispiels

  1. Wählen Sie unter Erweitert im Menü Synchronisieren eine der folgenden Optionen aus:

    • (Optional) Wählen Sie eine Neuinitialisierungsoption zur erneuten Initialisierung des Abonnements aus.
    • (Optional) Wählen Sie Web Synchronization Options, und geben Sie den Internet-URL und die Anmeldeinformationen der Windows-Authentifizierung an, die für den Zugriff auf den Webserver über eine sichere HTTPS-Verbindung verwendet werden. Diese Option können Sie nur verwenden, wenn bereits ein IIS-Server für die Websynchronisierung konfiguriert ist.
      ms160955.note(de-de,SQL.90).gifHinweis:
      Nur uploadbare oder nur downloadbare Synchronisierungen werden bei der Websynchronisierung nicht unterstützt. Wenn die Websynchronisierung aktiviert wurde, ist das Menüelement Only Upload Data deaktiviert.
    • (Optional) Wählen Sie die Option Get Subscription Status aus, um die Ergebnisse der letzten Merge-Agentsitzungen anzuzeigen.

Entfernen des Beispiels

Mithilfe des folgenden Verfahrens können Sie das Sales Orders-Beispiel entfernen.

So löschen Sie nur das Abonnement

  1. Führen Sie auf dem Abonnenten das folgende Transact-SQL-Skript zum Löschen des Pullabonnements aus.

    -- This batch is executed at the Subscriber to remove 
    -- the Sales Orders sample subscription.
    DECLARE @publisher AS sysname;
    
    -- change this value to the name of the Publisher server.
    SET @publisher = N'PUBSERVER'; 
    
    USE [AdventureWorksLocal]
    EXEC sp_dropmergepullsubscription 
      @publisher = @publisher, 
      @publisher_db = N'AdventureWorks',
      @publication = N'AdvWorksSalesOrders';
    GO
    
  2. Führen Sie auf dem Verleger das folgende Transact-SQL-Skript aus, um die Registrierung für das Pullabonnement aufzuheben.

    -- This batch is executed at the Publisher to remove 
    -- the Sales Orders sample subscription.
    DECLARE @subscriber AS sysname;
    
    -- change this value to the name of the Subscriber server.
    SET @subscriber = N'SUBSERVER'; 
    
    USE [AdventureWorks]
    EXEC sp_dropmergesubscription 
      @publication = N'AdvWorksSalesOrders', 
      @subscriber = @subscriber, 
      @subscriber_db = N'AdventureWorksLocal';
    GO
    

So entfernen Sie das Sales Orders-Beispiel

  1. Navigieren Sie auf dem Verleger zum Installationsverzeichnis der Skripts für das Sales Orders-Beispiel. Dies ist standardmäßig C:\Programme\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts.

  2. Führen Sie die Batchdatei RemoveSalesOrdersSample.bat aus.

  3. Wenn Sie dazu aufgefordert werden, geben Sie "Y" ein, und drücken Sie die Eingabetaste, um alle Replication-Objekte auf dem Verleger sowie in der Abonnementdatenbank zu entfernen und die Veröffentlichung und Verteilung auf dem Verleger zu deinstallieren.

    ms160955.note(de-de,SQL.90).gifWichtig:
    Wenn dieses Skripts verwendet wird, wird die gesamte Replikationsinfrastruktur entfernt. Wenn Sie andere Publikationen erstellt haben, die diesen Verleger oder Verteiler verwenden, führen Sie nicht DropAdvWorksSalesOrdersPublication.sql aus. Stattdessen sollten Sie die AdvWorksSalesOrders-Publikation manuell entfernen. Weitere Informationen finden Sie unter Vorgehensweise: Löschen einer Publikation (SQL Server Management Studio) oder How to: Delete a Publication (Replication Transact-SQL Programming) in der SQL Server-Onlinedokumentation.
  4. Führen Sie auf dem Abonnenten in der AdventureWorksLocal-Datenbank sp_removedbreplication (Transact-SQL) aus.

  5. Stellen Sie den Datenbankkontext auf die master-Datenbank um, und führen Sie DROP DATABASE AdventureWorksLocal aus.

Kommentar

Die Beispiele dienen nur zu Lernzwecken. Sie sind nicht für den Einsatz in einer Produktionsumgebung gedacht und wurden auch nicht in einer Produktionsumgebung getestet. Microsoft leistet keinen technischen Support für diese Beispiele. Beispielanwendungen und Assemblys sollten nicht ohne die Zustimmung des Systemadministrators mit der SQL Server-Datenbank oder dem Berichtsserver verbunden sein oder verwendet werden.

Siehe auch

Konzepte

Replikationsbeispiele

Andere Ressourcen

Planning for Replication Programming
Replikationsentwickler (InfoCenter)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Geänderter Inhalt:
  • Die Anforderungen wurden auf SQL Server 2005 SP1 aktualisiert.
  • Ein Hinweis mit Informationen zum Ausführen des Beispiels auf einem SQL Server 2005-Verleger wurde hinzugefügt.

05. Dezember 2005

Geänderter Inhalt:
  • Die Bereitstellungsschritte wurden aktualisiert.
  • Die Schlüsselerstellungs- und Bereitstellungsinformationen wurden aktualisiert, um Beispielaktualisierungen wiederzugeben.