Freigeben über


System.Transactions-Beispiel

Aktualisiert: 05. Dezember 2005

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 physikalischen Computern installiert werden: einem Hauptbeispielserver und einem Überwachungsserver.

Installationsverzeichnis: drive:\Programme\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Transaction\

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:

  • Microsoft SQL Server 2005 oder Microsoft SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express erhalten Sie kostenlos auf der Website für von SQL Server 2005 Express Edition.
  • Die AdventureWorks-Datenbank, die im Lieferumfang von SQL Server 2005 enthalten und auch auf der SQL Server Developer-Website verfügbar ist.
  • Die Beispiele zu SQL Server 2005-Datenbankmodul. Diese Beispiele sind in SQL Server 2005 enthalten. Sie können die aktuelle Version der Beispiele von der SQL Server Developer-Website downloaden.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Siehe Installieren des .NET Framework SDK
  • 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 Tools für die SQL Server-Oberflächenkonfiguration den Remotezugriff für SQL Server 2005 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 Microsoft Visual Studio 2005-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft Visual Studio 2005 und anschließend auf Visual Studio Tools, und klicken Sie dann auf Visual Studio 2005-Eingabeaufforderung.

    - Oder -

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

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD vom aktuellen Verzeichnis im Eingabeaufforderungsfenster in den Ordner mit den Beispielen.

    ms345266.note(de-de,SQL.90).gifHinweis:
    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005 und auf Documentation and Tutorials, und klicken Sie dann auf Samples Directory, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn bei der Installation der Standardspeicherort verwendet wurde, befinden sich die Beispiele im Ordner <system_drive>:\Programme\Microsoft SQL Server\90\Samples.
  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Schlüsseldatei zu generieren:

    sn -k ExternalSampleKey.snk

    ms345266.note(de-de,SQL.90).gifWichtig:
    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 physikalischer 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 Microsoft MSBuild, das im Lieferumfang von .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 AdventureWorks-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 Microsoft 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 Microsoft 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

CLR für SQL Server 2005 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.