Readme_Sales Orders-Beispiel für die Mergereplikation

Dieses Beispiel funktioniert nur mit SQL Server 2005 und SQL Server 2008. In einer SQL Server-Version vor SQL Server 2005 kann das Beispiel nicht ausgeführt werden.

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 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 ausführen. Die Veröffentlichung unterstützt außerdem SQL Server Compact 3.5 SP1-Abonnenten. Weitere Informationen zu diesen Beispielszenario finden Sie unter Sales Orders-Beispielszenario.

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
  • SQL Server Compact 3.5 SP1 und SQL Server Express-Abonnenten
  • Automatische Verwaltung des Identitätsbereichs
  • Geschäftslogikhandler
  • Websynchronisierung (optional)

Weitere Informationen zu diesem Beispiel und den darin beschriebenen Replikationsfeatures finden Sie unter Implementierungsdetails zum Sales Orders-Beispiel.

Voraussetzungen

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

  • SQL Server 2005 oder eine höhere Version einschließlich der folgenden optional installierten Komponenten:
    • SQL Server Database Engine (Datenbankmodul)-Dienste (einschließlich Replikation)
    • Clienttools
    • Die OLTP-Beispieldatenbank AdventureWorks. Diese Beispieldatenbank steht auf der Seite Microsoft SQL Server Community & Samples unter CodePlex zur Verfügung.
    • Die Beispiele zu SQL Server. Diese Beispiele stehen auf der Seite Microsoft SQL Server Community & Samples unter CodePlex zur Verfügung. Weitere Informationen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Weitere Informationen finden Sie unter Installieren der .NET Framework-Dokumentation.

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-Veröffentlichung 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.

    Hinweis

    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 Veröffentlichungsdatenbank 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 Veröffentlichungszugriffsliste (PAL) für die AdvWorksSalesOrders-Veröffentlichung 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 im Verzeichnis C:\Programme\Microsoft SQL Server\100\COM ab. Falls Sie mit der Websynchronisierung arbeiten, müssen Sie auch eine Kopie von BusinessLogic.dll im Verzeichnis C:\Programme\Microsoft SQL Server\100\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. Weitere Informationen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.

  2. Stellen Sie sicher, dass die SQL Server Database Engine (Datenbankmodul)-Beispiele installiert wurden. Weitere Informationen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.

  3. Stellen Sie sicher, dass der SQL Server-Agent ausgeführt wird. Den Status dieses Diensts 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. Das Standardverzeichnis lautet C:\Programme\Microsoft SQL Server\100\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-Veröffentlichung und erstellt sie neu.
    • Fügt der Veröffentlichung 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 How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio).

  8. Stellen Sie vor dem Fortfahren sicher, dass der Snapshot-Agentauftrag für die AdvWorksSalesOrders-Veröffentlichung 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 How to: View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor) in der SQL Server-Onlinedokumentation.

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

  1. Navigieren Sie an der Eingabeaufforderung zum Installationsverzeichnis der SQL Server-Beispiele. Das Standardverzeichnis lautet C:\Programme\Microsoft SQL Server\100\Samples\.

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

    sn -k SampleKey.snk

    Hinweis

    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#. Das Standardverzeichnis lautet C:\Programme\Microsoft SQL Server\100\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.

    Hinweis

    Die Replikation bietet keine Unterstützung von localhost für Server-Namen.

  7. Legen Sie auf dem Abonnenten eine Kopie der BusinessLogic.dll-Assembly im Verzeichnis C:\Programme\Microsoft SQL Server\100\COM ab.

  8. (Optional) Legen Sie bei Verwendung der Websynchronisierung eine Kopie der BusinessLogic.dll-Assembly im Verzeichnis C:\Programme\Microsoft SQL Server\100\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.

    Hinweis

    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.

    Hinweis

    Das Feature Synchronize When Connected steht beim Ausführen auf Microsoft Windows 2000-Plattformen nicht zur Verfügung. Weitere Informationen finden Sie unter Implementierungsdetails zum Sales Orders-Beispiel.

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 die 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.

      Hinweis

      Nur Synchronisierungen zum Hoch- oder Herunterladen 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.

  2. Führen Sie auf dem Verleger das folgende Transact-SQL-Skript aus, um die Registrierung für das Pullabonnement aufzuheben.

So entfernen Sie das Sales Orders-Beispiel

  1. Navigieren Sie auf dem Verleger zum Installationsverzeichnis der Skripts für das Sales Orders-Beispiel. Das Standardverzeichnis lautet C:\Programme\Microsoft SQL Server\100\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.

    Wichtig

    Wenn dieses Skripts verwendet wird, wird die gesamte Replikationsinfrastruktur entfernt. Wenn Sie andere Veröffentlichungen erstellt haben, die diesen Verleger oder Verteiler verwenden, führen Sie nicht DropAdvWorksSalesOrdersPublication.sql aus. Stattdessen sollten Sie die AdvWorksSalesOrders-Veröffentlichung manuell entfernen. Weitere Informationen finden Sie unter How to: Delete a Publication (SQL Server Management Studio) oder Vorgehensweise: Löschen einer Veröffentlichung (Replikationsprogrammierung mit Transact-SQL) 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

Beispiele (Replikation)

Andere Ressourcen

Konzepte für die Replikationsprogrammierung
InfoCenter für Entwickler (Replikation)

Hilfe und Informationen

Informationsquellen für SQL Server 2008