System.Transactions Namespace

Enthält Klassen, mit denen eigene Transaktionsanwendungen und Ressourcen-Manager geschrieben werden können. Insbesondere können Sie eine Transaktion erstellen und an einer Transaktion (lokal oder verteilt) mit einem oder mehreren Teilnehmern teilnehmen.

Klassen

CommittableTransaction

Beschreibt eine Transaktion, für die ein Commit ausgeführt werden kann.

DependentTransaction

Beschreibt einen Klon einer Transaktion und gewährleistet, dass kein Commit der Transaktion ausgeführt werden kann, solange die Anwendung bezüglich der Transaktion noch aktiv ist. Diese Klasse kann nicht vererbt werden.

DistributedTransactionPermission

Die Berechtigung, die von System.Transactions gefordert wird, wenn die Verwaltung einer Transaktion an MSDTC eskaliert wird. Diese Klasse kann nicht vererbt werden.

DistributedTransactionPermissionAttribute

Ermöglicht, dass Sicherheitsaktionen für DistributedTransactionPermission unter Verwendung deklarativer Sicherheit auf Code angewendet werden. Diese Klasse kann nicht vererbt werden.

Enlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager während der letzten Phase der Transaktion.

PreparingEnlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager in der Vorbereitungsphase der Transaktion.

SinglePhaseEnlistment

Stellt eine Reihe von Rückrufen bereit, die die Kommunikation zwischen einem für einen Einphasencommit eingetragenen Teilnehmer und dem Transaktions-Manager fördern, wenn die SinglePhaseCommit(SinglePhaseEnlistment)-Benachrichtigung empfangen wird.

SubordinateTransaction

Stellt eine Transaktion dar, die keine Stammtransaktion ist, aber delegiert werden kann. Diese Klasse kann nicht vererbt werden.

Transaction

Stellt eine Transaktion dar.

TransactionAbortedException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, für die bereits ein Rollback ausgeführt wurde, oder wenn versucht wird, einen Commit der Transaktion auszuführen und die Transaktion abgebrochen wird.

TransactionEventArgs

Stellt Daten für die folgenden Transaktionsereignisse bereit: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Die Ausnahme, die ausgelöst wird, wenn Sie Vorgänge für eine Transaktion ausführen, die keine weiteren Aktionen akzeptieren kann.

TransactionInDoubtException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, die zweifelhaft ist, oder wenn versucht wird, die Transaktion auszuführen und die Transaktion den Status InDoubt annimmt.

TransactionInformation

Stellt zusätzliche Informationen zu einer Transaktion bereit.

TransactionInterop

Erleichtert die Interaktion zwischen System.Transactions und Komponenten, die geschrieben wurden, um mit MSDTC, COM+ oder System.EnterpriseServices zu interagieren. Diese Klasse kann nicht vererbt werden.

TransactionManager

Enthält zum Verwalten von Transaktionen verwendete Methoden. Diese Klasse kann nicht vererbt werden.

TransactionManagerCommunicationException

Diese Ausnahme wird ausgelöst, wenn die Kommunikation zwischen Ressourcen-Manager und Transaktions-Manager nicht möglich ist.

TransactionPromotionException

Die Ausnahme, die ausgelöst wird, wenn eine Heraufstufung fehlschlägt.

TransactionScope

Ändert einen Codeblock in transaktional. Diese Klasse kann nicht vererbt werden.

Strukturen

TransactionOptions

Enthält zusätzliche Informationen, die das Transaktionsverhalten bestimmen.

Schnittstellen

IDtcTransaction

Beschreibt eine DTC-Transaktion.

IEnlistmentNotification

Beschreibt eine Schnittstelle, die ein Ressourcen-Manager implementieren sollte, um beim Eintragen für die Teilnahme Zweiphasencommit-Benachrichtigungsrückrufe für den Transaktions-Manager bereitzustellen.

IPromotableSinglePhaseNotification

Beschreibt ein Objekt, das als Commit-Delegat für eine nicht verteilte Transaktion in einem Ressourcen-Manager fungiert.

ISimpleTransactionSuperior

Stellt eine Transaktion dar, bei der es sich um keine Stammtransaktion handelt, deren Verwaltung jedoch an MSDTC eskaliert werden kann.

ISinglePhaseNotification

Beschreibt ein Ressourcenobjekt, das die Einphasencommit-Optimierung für die Einbeziehung in eine Transaktion unterstützt.

ITransactionPromoter

Beschreibt eine delegierte Transaktion für eine vorhandene Transaktion, deren Verwaltung bei Bedarf an MSDTC eskaliert werden kann.

Enumerationen

DependentCloneOption

Steuert, welche Art von abhängiger Transaktion erstellt werden soll.

EnlistmentOptions

Bestimmt, ob das Objekt während der Vorbereitungsphase eingetragen werden soll.

EnterpriseServicesInteropOption

Gibt an, wie verteilte Transaktionen mit COM+-Transaktionen interagieren.

IsolationLevel

Gibt die Isolationsebene einer Transaktion an.

TransactionScopeAsyncFlowOption

Gibt an, ob Transaktionsfluss über Thread Fortsetzungen für TransactionScope aktiviert ist.

TransactionScopeOption

Stellt zusätzliche Optionen für das Erstellen eines Transaktionsbereichs bereit.

TransactionStatus

Beschreibt den aktuellen Status einer verteilten Transaktion.

Delegaten

HostCurrentTransactionCallback

Stellt für die Hostumgebung einen Mechanismus zur Verfügung, mit der sie ihr Standardkonzept von Current bereitstellen kann.

TransactionCompletedEventHandler

Stellt die Methode dar, die das TransactionCompleted-Ereignis einer Transaction-Klasse behandelt.

TransactionStartedEventHandler

Stellt die Methode dar, die das DistributedTransactionStarted-Ereignis einer TransactionManager-Klasse behandelt.

Hinweise

Die System.Transactions Infrastruktur macht die Transaktionsprogrammierung auf der gesamten Plattform einfach und effizient, indem transaktionen unterstützt werden, die in SQL Server, ADO.NET, MSMQ und dem Microsoft Distributed Transaction Coordinator (MSDTC) initiiert wurden. Es bietet sowohl ein explizites Programmiermodell, das auf der Transaction -Klasse basiert, als auch ein implizites Programmiermodell unter Verwendung der TransactionScope -Klasse, bei dem Transaktionen automatisch von der Infrastruktur verwaltet werden. Es wird dringend empfohlen, das einfachere implizite Modell für die Entwicklung zu verwenden. Informationen zu den ersten Schritten finden Sie im Thema Implementieren einer impliziten Transaktion mithilfe des Transaktionsbereichs . Weitere Informationen zum Schreiben einer Transaktionsanwendung finden Sie unter Schreiben einer Transaktionsanwendung.

System.Transactions stellt außerdem Typen bereit, die Sie zum Implementieren eines Ressourcen-Managers verwenden können. Der in der System.Transactions Infrastruktur native Transaktions-Manager ermöglicht es, flüchtige Ressourcen oder eine einzelne permanente Ressourceneintragung effizient zu commiten oder rollbacken. Weitere Informationen zum Implementieren eines Ressourcen-Managers finden Sie unter Implementieren eines Resource Manager.

Der Transaktions-Manager eskaliert auch transparent lokale Transaktionen zu verteilten Transaktionen, indem er über einen datenträgerbasierten Transaktions-Manager wie den DTC koordiniert, wenn sich ein zusätzlicher dauerhafter Ressourcen-Manager mit einer Transaktion anmeldet. Es gibt zwei grundlegende Methoden, mit der System.Transactions-Infrastruktur eine verbesserte Leistung zu erreichen.

  • Dynamische Eskalation, d. h. die System.Transactions Infrastruktur greift nur dann auf msDTC ein, wenn sie für eine Transaktion tatsächlich erforderlich ist. Dieser Bereich wird im Thema Transaktionsverwaltungseskalation ausführlich behandelt.

  • 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. Später, falls erforderlich, kann die System.Transactions Infrastruktur die Verwaltung der Transaktion an MSDTC eskalieren. Auch dies reduziert die Zahl der Fälle, in denen MSDTC verwendet wird. Dieser Bereich wird im Thema Optimization Using Single Phase Commit and Promotable Single Phase Notification ausführlich behandelt.

Weitere Informationen zur Verwendung des System.Transactions Namespace finden Sie unter Transaktionsverarbeitung.