System.Transactions Namespace

Пространство имен System.Transactions содержит классы, позволяющие создать собственное транзакционное приложение или диспетчер ресурсов. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. В частности, можно создать транзакцию (локальную или распределенную) и участвовать в ней с одним или несколькими участниками. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Classes

CommittableTransaction

Описывает фиксируемую транзакцию.Describes a committable transaction.

DependentTransaction

Описывает клон транзакции, гарантирующий невозможность фиксации транзакции до тех пор, пока приложение не дойдет до выполнения последних действий, связанных с операциями по транзакции.Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. Этот класс не может быть унаследован.This class cannot be inherited.

DistributedTransactionPermission

Разрешение, которое требуется пространством имен System.Transactions при эскалации управления транзакцией MSDTC.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Этот класс не наследуется.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Allows security actions for DistributedTransactionPermission to be applied to code using declarative security.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. This class cannot be inherited.This class cannot be inherited.

Enlistment

Облегчает взаимодействие между включенным в список участником транзакции и диспетчером транзакций на завершающем этапе транзакции.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Упрощает взаимодействие между присоединенным участником транзакции и диспетчером транзакций в ходе подготовительной фазы транзакции.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Предоставляет набор обратных вызовов, которые облегчают взаимодействие между участником, присоединенным к однофазной фиксации, и диспетчером транзакций при получении уведомления SinglePhaseCommit(SinglePhaseEnlistment).Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

Представляет некорневую транзакцию, которая может быть делегирована.Represents a non-rooted transaction that can be delegated. Этот класс не может быть унаследован.This class cannot be inherited.

Transaction

Представляет транзакцию.Represents a transaction.

TransactionAbortedException

Исключение, которое вызывается в двух случаях: а) при попытке выполнить операцию по транзакции, для которой уже был выполнен откат; б) когда делается попытка зафиксировать транзакцию, и транзакция прерывается.The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

Предоставляет данные для следующих событий, связанных с транзакцией: DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Исключение, вызываемое при попытке выполнить операцию по транзакции, которая не может допустить новую операцию.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

Исключение, которое вызывается в двух случаях: а) при попытке выполнить операцию по транзакции, которая находится в состоянии InDoubt; б) когда делается попытка зафиксировать транзакцию, и транзакция переходит в состояние InDoubt.The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

Предоставляет дополнительные сведения, касающиеся транзакции.Provides additional information regarding a transaction.

TransactionInterop

Облегчает взаимодействие между System.Transactions и компонентами, которые были разработаны ранее для взаимодействия с MSDTC, COM+ или System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Этот класс не может быть унаследован.This class cannot be inherited.

TransactionManager

Содержит методы, используемые для управления транзакциями.Contains methods used for transaction management. Этот класс не может быть унаследован.This class cannot be inherited.

TransactionManagerCommunicationException

Исключение возникает, если диспетчер ресурсов не может взаимодействовать с диспетчером транзакций.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

Исключение возникает при сбое преобразования.The exception that is thrown when a promotion fails.

TransactionScope

Делает блок кода транзакционным.Makes a code block transactional. Этот класс не может быть унаследован.This class cannot be inherited.

Structs

TransactionOptions

Содержит дополнительную информацию, которая задает поведение транзакции.Contains additional information that specifies transaction behaviors.

Interfaces

IDtcTransaction

Описывает транзакцию DTC.Describes a DTC transaction.

IEnlistmentNotification

Описывает интерфейс, который должен реализовать диспетчер ресурсов, чтобы предоставить обратные вызовы уведомлений о двухфазной фиксации диспетчеру транзакций при внесении в список для участия.Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

Описывает объект, действующий в качестве делегата фиксации для нераспределенной транзакции, которая является внутренней для диспетчера ресурсов.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Представляет транзакцию, которая не является корневой, но может быть расширена, чтобы находиться под управлением MSDTC.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Описывает объект ресурса, который поддерживает оптимизацию однофазной фиксации для участия в транзакции.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Описывает делегированную транзакцию для существующей транзакции, которая может быть расширена, чтобы при необходимости находиться под управлением MSDTC.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Enums

DependentCloneOption

Определяет тип зависимой транзакции, которую требуется создать.Controls what kind of dependent transaction to create.

EnlistmentOptions

Определяет, должен ли объект быть присоединен в ходе подготовительной фазы.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Указывает способ взаимодействия распределенных транзакций с транзакциями COM+.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Указывает уровень изоляции транзакции.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Указывает, включен ли для TransactionScope поток транзакций через продолжения потоков.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Предоставляет дополнительные параметры для создания области транзакций.Provides additional options for creating a transaction scope.

TransactionStatus

Описывает текущее состояние распределенной транзакции.Describes the current status of a distributed transaction.

Delegates

HostCurrentTransactionCallback

Предоставляет механизм для обеспечения средой внешнего размещения собственного представления по умолчанию для свойства Current.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Представляет метод, обрабатывающий событие TransactionCompleted класса Transaction.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Представляет метод, обрабатывающий событие DistributedTransactionStarted класса TransactionManager.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Remarks

Инфраструктура System.Transactions делает программирование транзакций простым и эффективным на всей платформе за счет поддержки транзакций, инициированных в SQL Server, ADO.NET, MSMQ и Microsoft координатор распределенных транзакций (MSDTC).The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). Она предоставляет явную модель программирования на основе класса Transaction, а также неявную модель программирования с помощью класса TransactionScope, в котором транзакции автоматически управляются инфраструктурой.It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. Настоятельно рекомендуется использовать более простую неявную модель для разработки.It is highly recommended that you use the easier implicit model for development. Чтобы приступить к работе, см. раздел Реализация неявной транзакции с использованием области транзакции .To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Дополнительные сведения о написании транзакционного приложения см. в разделе написание транзакционногоприложения.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions также предоставляет типы для реализации диспетчера ресурсов.System.Transactions also provides types for you to implement a resource manager. Диспетчер транзакций, встроенный в инфраструктуру System.Transactions, позволяет эффективно зафиксировать или откатить временные ресурсы или одно устойчивое прикрепление ресурсов.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Дополнительные сведения о реализации диспетчера ресурсов см. в разделе реализация диспетчер ресурсов.For more information on implementing a resource manager, see Implementing A Resource Manager.

Диспетчер транзакций также прозрачно распространяет локальные транзакции на распределенные транзакции путем координации через серверный диспетчер транзакций, например DTC, когда дополнительный диспетчер устойчивых ресурсов прикрепляет себя к транзакции.The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. Инфраструктура System.Transactions обеспечивает повышенную производительность двумя основными способами.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Динамическое укрупнение. Это означает, что инфраструктура System.Transactions применяет только MSDTC, когда она действительно требуется для транзакции.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Эта область подробно описана в разделе эскалация управления транзакциями .This area is covered in depth in the Transaction Management Escalation topic.

  • Повышаемое зачисление. Позволяет ресурсу, например базе данных, стать владельцем транзакции, если он является единственной сущностью, участвующей в транзакции.Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. В дальнейшем, при необходимости, инфраструктура System.Transactions может повышать управляемость транзакции до MSDTC.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Это дополнительно уменьшает вероятность использования координатора MSDTC.This further reduces the chance of using the MSDTC. Эта область подробно описана в разделе Оптимизация с использованием одноэтапной фиксации и уведомления с одним этапом с возможностью продвижения .This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions определяет три уровня доверия, которые ограничивают доступ к типам предоставляемых им ресурсов.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. В частности, сборка System. Transactions может вызываться частично доверенным кодом, как если бы она была помечена атрибутом AllowPartiallyTrustedCallers (APTCA).Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). Этот атрибут по существу исключает неявный запрос LinkDemand для набора разрешений FullTrust, который в противном случае автоматически используется в каждом общедоступном методе каждого типа.This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. Однако для некоторых типов и элементов по-прежнему требуются разрешения более высокого уровня.However, some types and members still require stronger permissions.

Ниже приведен список типов и членов, которые не вызываются частично доверенным кодом, так как они снабжены следующим декларативным атрибутом безопасности:The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System. Transactions. Transaction. EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System. Transactions. Transaction. EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System. Transactions. ТрансактионинтеропSystem.Transactions.TransactionInterop

System. Transactions. Диспетчер транзакций. ДистрибутедтрансактионстартедSystem.Transactions.TransactionManager.DistributedTransactionStarted

System. Transactions. Диспетчер транзакций. ХосткурренттрансактионкаллбаккSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System. Transactions. Диспетчер транзакций. Повторное прикреплениеSystem.Transactions.TransactionManager.Reenlist

System. Transactions. Диспетчер транзакций. RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System. Transactions. TransactionScope. TransactionScope (System. Transactions. Transaction, System. TimeSpan, System. Transactions. Ентерприсесервицесинтеропоптион)System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Дополнительные сведения о различных уровнях доверия см. в разделе уровни доверия безопасности при доступе к ресурсам.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Основная разработка Течнологиес\дата Акцесс\трансактион обработка Core Development Technologies\Data Access\Transaction Processing\

Дополнительные сведения об использовании пространства имен System.Transactions см. в концептуальной документации обработка транзакций, которая находится в разделе "Основные разработки Течнологиес\дата акцесс\трансактион processing\" в документации.For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. В частности, дополнительные сведения можно найти в следующих разделах.Specifically, you can find more information in the following topics.

Функции, предоставляемые System. TransactionsFeatures Provided By System.Transactions

Реализация диспетчер ресурсовImplementing A Resource Manager