Freigeben über


Von System.Transactions bereitgestellte Features

In diesem Abschnitt wird beschrieben, wie Sie anhand der Features, die der System.Transactions-Namespace bereitstellt, Ihre eigene Transaktionsanwendung und Ihren eigenen Ressourcen-Manager schreiben können. In diesem Abschnitt wird insbesondere darauf eingegangen, wie eine (lokale oder verteilte) Transaktion erstellt wird und ein oder mehrere Teilnehmer daran teilnehmen können.

Übersicht über System.Transactions

Die Infrastruktur, die von den Klassen im System.Transactions-Namespace bereitgestellt werden, erleichtern die Transaktionsprogrammierung und machen sie effizienter, da von SQL Server, ADO.NET, Message Queuing (MSMQ) und Microsoft Distributed Transaction Coordinator (MSDTC) gestartete Transaktionen unterstützt werden. Der System.Transactions-Namespace bietet sowohl ein explizites Programmiermodell, das auf der Transaction-Klasse basiert, als auch ein implizites Programmiermodell, das die TransactionScope-Klasse verwendet, in der Transaktionen automatisch von der Infrastruktur verwaltet werden. Weitere Informationen darüber, wie eine Transaktionsanwendung mithilfe dieser beiden Modelle erstellt wird, finden Sie unter Erstellen einer Transaktionsanwendung.

Der System.Transactions-Namespace stellt auch Typen zur Implementierung eines Ressourcen-Managers bereit. Mit einem Ressourcen-Manager werden dauerhafte oder flüchtige in einer Transaktion verwendete Daten verwaltet. Zusammen mit dem Transaktions-Manager gewährleistet der Ressourcen-Manager Unteilbarkeit und Isolation für die Anwendung. Der von der System.Transactions-Infrastruktur bereitgestellte Transaktions-Manager unterstützt Transaktionen, die mehrere flüchtige Ressourcen oder eine einzelne dauerhafte Ressource umfassen. Weitere Informationen zum Implementieren eines Ressourcen-Managers finden Sie unter Implementieren eines Ressourcen-Managers.

Der Transaktions-Manager eskaliert zudem lokale Transaktionen durch Koordination mit einem datenträgerbasierten Transaktions-Manager wie DTC transparent zu verteilten Transaktionen, wenn sich ein zusätzlicher dauerhafter Ressourcen-Manager bei der Transaktion einträgt. Es gibt zwei grundlegende Methoden, mit der System.Transactions-Infrastruktur eine verbesserte Leistung zu erreichen.

  • Dynamische Eskalation: Sie stellt sicher, dass die System.Transactions-Infrastruktur nur MSDTC verwendet, wenn die Transaktion mehrere verteilte Ressourcen betrifft. Weitere Informationen zur dynamischen Eskalation finden Sie im Thema Eskalation der Transaktionsverwaltung.

  • Erweiterbare Eintragungen: Ermöglichen es einer Ressource (z. B. einer Datenbank), Eigentümer der Transaktion zu werden, wenn sie die einzige Entität ist, die an der Transaktion teilnimmt. Gegebenenfalls kann die System.Transactions-Infrastruktur die Verwaltung der Transaktion zu einem späteren Zeitpunkt an MSDTC eskalieren. Auch dies reduziert die Zahl der Fälle, in denen MSDTC verwendet wird. Ausführliche Informationen zu erweiterbaren Eintragungen erhalten Sie im Thema Optimierung mit Einphasencommit und heraufstufbarer Einphasenbenachrichtigung.

Der System.Transactions-Namespace definiert drei Vertrauensebenen – AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) und volle Vertrauenswürdigkeit –, die den Zugriff auf die verfügbar gemachten Ressourcentypen einschränken. Weitere Informationen zu den verschiedenen Vertrauensebenen finden Sie unter Vertrauensebenen für Sicherheit beim Zugriff auf Ressourcen.

In diesem Abschnitt

Erstellen einer Transaktionsanwendung

Der System.Transactions-Namespace stellt zwei Modelle zum Erstellen von Transaktionsanwendungen bereit. Implementieren einer impliziten Transaktion mit Transaktionsbereich beschreibt, wie der System.Transactions-Namespace das Erstellen impliziter Transaktionen mit der TransactionScope-Klasse unterstützt.

Implementieren einer expliziten Transaktion mit CommittableTransaction beschreibt, wie der System.Transactions-Namespace das Erstellen expliziter Transaktionen mit der CommittableTransaction-Klasse unterstützt.

Weitere Themen, in denen das Erstellen einer Transaktionsanwendung beschrieben wird, finden Sie unter Erstellen einer Transaktionsanwendung.

Implementieren eines Ressourcen-Managers

Informationen dazu, wie Sie einen Ressourcen-Manager implementieren, der an einer Transaktion teilnehmen kann, finden Sie unter Implementieren eines Ressourcen-Managers. In diesem Abschnitt werden das Eintragen einer Ressource, das Durchführen eines Transaktionscommit, die Wiederherstellung nach einem Fehler und Best Practices für die Optimierung behandelt.

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.