Freigeben über


Readme_System.Transactions-Beispiel

[Dieses Thema ist eine Dokumentation zur Vorabversion und kann in zukünftigen Versionen geändert werden. Leere Themen sind als Platzhalter eingefügt. BITTE BEACHTEN SIE: Microsoft ist bestrebt, Ihnen möglichst viele Inhalte in deutscher Sprache anzubieten. Deshalb stellen wir Ihnen auch Dokumente zur Verfügung, die mit alternativen Verfahren übersetzt wurden. Der Inhalt der Dokumente dieser Vorabversion wurde zum Teil mithilfe solcher Verfahren übersetzt. Microsoft ist sich bewusst, dass ein auf diese Weise übersetztes Dokument nicht immer perfekt ist. Es kann Fehler in Bezug auf Wortwahl, Satzbau oder Grammatik enthalten. Für die Übersetzung der endgültigen Version dieses Inhalts werden herkömmliche Verfahren verwendet, sodass die Qualität der früherer Versionen entspricht.]

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.

Das System.Transactions-Beispiel zeigt, wie Sie mithilfe der verwalteten APIs, die sich im System.Transactions-Namespace befinden, Transaktionen steuern können. Dabei wird mithilfe der System.Transactions.TransactionScope-Klasse eine Transaktionsgrenze festgelegt, um sicherzustellen, dass keine Lagerbestandsdaten angepasst werden, solange kein genügend großer Lagerbestand zur Deckung der Anforderung vorhanden ist, und dass bei einem ausreichenden Lagerbestand der Transfer von Beständen zwischen den Standorten auf atomare Weise erfolgt. Zur Demonstration der automatischen Registrierung in einer verteilten Transaktion werden Bestandsänderungen in einer Überwachungsdatenbank protokolliert, die auf einem separaten Server gespeichert ist.

Dieses Beispiel muss in zwei Teilen auf zwei physischen Computern installiert werden: einem Hauptbeispielserver und einem Überwachungsserver.

Installationsverzeichnis: C:\Programme\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\Transaction\

SQL Server-Beispiele und -Beispieldatenbanken müssen heruntergeladen und installiert werden, bevor Sie sie anzeigen oder mit ihnen arbeiten können. Weitere Informationen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.

Szenario

Jane ist eine Entwicklerin für Adventure Works Cycles. Im Rahmen Ihrer Aufgaben muss sie Warenbestandsbewegungen zwischen unterschiedlichen Standorten in einer transaktionskonsistenten Weise nachverfolgen und bei der Überwachung von Bestandsveränderungen mitwirken.

Sprachen

Transact-SQL, Visual C# und Visual Basic.

Features

Das System.Transactions-Beispiel verwendet die folgenden Features von SQL Server.

Anwendungsbereich Features

Gesamt

CLR (Common Language Runtime), Transaktionen, Verteilte Transaktionen, ADO .NET, MSDTC

Voraussetzungen

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

  • SQL Server oder SQL Server Express. SQL Server Express erhalten Sie kostenlos auf der Website mit der Dokumentation und den Beispielen für SQL Server Express.
  • Die AdventureWorks-Datenbank, die auf der SQL Server Developer-Website zur Verfügung gestellt wird.
  • Die SQL Server Database Engine (Datenbankmodul)-Beispiele, die auf der SQL Server Developer-Website zur Verfügung gestellt werden.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Sie können das .NET Framework SDK kostenlos erhalten. Siehe Installieren der .NET Framework-Dokumentation
  • Microsoft Distributed Transaction Coordinator (MSDTC). MSDTC muss so konfiguriert sein, dass ein- und ausgehende Clientverbindungen zulässig sind. MSDTC muss auf beiden in diesem Beispiel verwendeten Servern installiert und konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation zu den Komponentendiensten.

Konfigurieren Sie die folgenden Komponenten, bevor Sie dieses Beispiel ausführen:

  • Wenn auf einem der beiden Server die Windows-Firewall aktiviert ist, müssen Sie die Firewall auf beiden Servern so konfigurieren, dass Verbindungen mit SQL Server und MSDTC zugelassen werden. Weitere Informationen finden Sie in der Dokumentation zur Windows-Firewall.
  • Aktivieren Sie mithilfe des SQL Server-Konfigurations-Managers den TCP/IP- oder Named Pipe-Zugriff für SQL Server auf dem Überwachungsserver.

Erstellen des Beispiels

Wenn Sie die Schlüsseldatei mit starkem Namen, ExternalSampleKey.snk, noch nicht erstellt haben, erstellen Sie sie mithilfe der folgenden Anweisungen.

So generieren Sie eine Schlüsseldatei mit starkem Namen

  1. Öffnen Sie eine Visual Studio 2005-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft Visual Studio 2005 und auf Visual Studio Tools, und klicken Sie dann auf Visual Studio 2005-Eingabeaufforderung.

    - Oder -

    Öffnen Sie eine .NET Framework-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme und auf Microsoft .NET Framework SDK 2.0, und klicken Sie dann auf SDK-Eingabeaufforderung.

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD (Verzeichnis wechseln) vom aktuellen Ordner im Eingabeaufforderungsfenster zum Ordner Samples.

    Hinweis

    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server und auf Dokumentation und Lernprogramme, und klicken Sie dann auf Beispielordner, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn der Standardinstallationspfad verwendet wurde, befinden sich die Beispiele in C:\Programme\Microsoft SQL Server\100\Samples.

  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Schlüsseldatei zu generieren:

    sn -k ExternalSampleKey.snk

    Wichtig

    Weitere Informationen zum Schlüsselpaar mit starkem Namen finden Sie unter "Security Briefs: Strong Names and Security in the .NET Framework" (in Englisch) im .NET Development Center auf der MSDN-Website.

So erstellen Sie das System.Transactions-Beispiel

  1. Bearbeiten Sie CS\Transaction\InventoryMover.cs, und ändern Sie den Wert der Zeichenfolgenkonstanten auditConnectionString in den genauen Namen des Servers, auf dem die Überwachungsinformationen für dieses Beispiel gespeichert werden. Dieser Server muss ein anderer physischer Computer sein als der, auf dem Sie den Hauptteil dieses Beispiels installieren. Legen Sie auf dem Überwachungsserver ein Testkonto mit SQL Server-Authentifizierung fest, und ändern Sie dann die Zeichenfolgenkonstante auditConnectionString so, dass der Benutzername und das Kennwort dieses Kontos angegeben werden.

  2. Kompilieren Sie das Beispiel mithilfe von Visual Studio 2005 und der bereitgestellten Visual Studio-Projektmappe oder mithilfe von MSBuild, das im .NET Framework SDK 2.0 enthalten ist. Führen Sie an einer Eingabeaufforderung einen Befehl ähnlich dem folgenden aus:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\Transaction.sln

  3. Stellen Sie sicher, dass die AdventureWorks2008R2-Datenbank installiert ist.

  4. Wenn Sie die Beispiele für SQL Server Engine nicht im Standardspeicherort installiert haben, ändern Sie den CREATE ASSEMBLY-Abschnitt des Skripts in Scripts\InstallCS.sql und Scripts\InstallVB.sql, um auf den Speicherort zu verweisen, in dem die Beispiele installiert wurden.

  5. Wenn Sie keine Administratorrechte für die von Ihnen verwendete SQL Server-Instanz besitzen, müssen Sie sich von einem Administrator die CreateAssembly-Berechtigung erteilen lassen, um die Installation ausführen zu können.

  6. Öffnen Sie die Datei scripts\installCS.sql bzw. scripts\installVB.sql (je nachdem, ob Sie das Visual C#-Projekt oder das Visual Basic-Projekt kompiliert haben) in Management Studio. Führen Sie das in der Datei enthaltene Skript aus, während Sie mit dem Hauptbeispielserver verbunden sind, oder führen Sie in einem Eingabeaufforderungsfenster auf dem Hauptbeispielserver einen Befehl ähnlich dem folgenden aus:

    sqlcmd -E -I -i Scripts\InstallCS.sql

  7. Öffnen Sie die Datei scripts\installDB.sql in Management Studio. Führen Sie das in der Datei enthaltene Skript aus, während Sie mit dem Überwachungsserver verbunden sind, oder führen Sie in einem Eingabeaufforderungsfenster auf dem Überwachungsserver einen Befehl ähnlich dem folgenden aus:

    sqlcmd -E -I -i Scripts\InstallDB.sql

Ausführen des Beispiels

So führen Sie das System.Transactions-Beispiel aus

  1. Öffnen Sie die Datei scripts\test.sql in Management Studio. Führen Sie das in der Datei enthaltene Skript aus, oder führen Sie in einem Eingabeaufforderungsfenster den folgenden Befehl aus:

    sqlcmd -E -I -i Scripts\test.sql

Entfernen des Beispiels

So entfernen Sie das System.Transactions-Beispiel

  1. Öffnen Sie die Datei scripts\cleanup.sql in Management Studio. Führen Sie auf dem Hauptbeispielserver das in der Datei enthaltene Skript aus, oder führen Sie in einem Eingabeaufforderungsfenster auf dem Hauptbeispielserver den folgenden Befehl aus:

    sqlcmd -E -I -i Scripts\cleanup.sql

  2. Öffnen Sie die Datei scripts\cleanup.sql in Management Studio. Führen Sie auf dem Überwachungsserver das in der Datei enthaltene Skript aus, oder führen Sie in einem Eingabeaufforderungsfenster auf dem Überwachungsserver den folgenden Befehl aus:

    sqlcmd -E -I -i Scripts\cleanupDB.sql

Kommentar

Die CLR für SQL Server oder SQL Server Express muss aktiviert sein, damit dieses Beispiel ordnungsgemäß ausgeführt werden kann.

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.