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.

Классы

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

Разрешает применять меры безопасности для DistributedTransactionPermission к коду с помощью декларативной безопасности.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Этот класс не наследуется.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.

Структуры

TransactionOptions

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

Интерфейсы

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.

Перечисления

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.

Делегаты

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.

Комментарии

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.

Диспетчер транзакций также прозрачно повышает локальные транзакции до распределенной транзакции, координируя через диспетчер транзакций на основе диска, подобным Координатору, когда дополнительный диспетчер устойчивых ресурсов зачисляется в транзакцию.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.TransactionInteropSystem.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.ReenlistSystem.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)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.

Processing\ доступ технологии разработки CoreCore Development Technologies\Data Access\Transaction Processing\

Дополнительные сведения об использовании System.Transactions пространства имен, вы можете в основной документации обработки транзакций, расположенный в области «Core разработки приведены доступ обработку\«в разделе документации по.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