Поделиться через


System.Transactions Пространство имен

Содержит классы, позволяющие создать собственное транзакционное приложение или диспетчер ресурсов. В частности, можно создать транзакцию (локальную или распределенную) и участвовать в ней с одним или несколькими участниками.

Классы

CommittableTransaction

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

DependentTransaction

Описывает клон транзакции, гарантирующий невозможность фиксации транзакции до тех пор, пока приложение не дойдет до выполнения последних действий, связанных с операциями по транзакции. Этот класс не наследуется.

DistributedTransactionPermission

Разрешение, которое требуется пространством имен System.Transactions при эскалации управления транзакцией MSDTC. Этот класс не наследуется.

DistributedTransactionPermissionAttribute

Разрешает применять меры безопасности для DistributedTransactionPermission к коду с помощью декларативной безопасности. Этот класс не наследуется.

Enlistment

Облегчает взаимодействие между включенным в список участником транзакции и диспетчером транзакций на завершающем этапе транзакции.

PreparingEnlistment

Упрощает взаимодействие между присоединенным участником транзакции и диспетчером транзакций в ходе подготовительной фазы транзакции.

SinglePhaseEnlistment

Предоставляет набор обратных вызовов, которые облегчают взаимодействие между участником, присоединенным к однофазной фиксации, и диспетчером транзакций при получении уведомления SinglePhaseCommit(SinglePhaseEnlistment).

SubordinateTransaction

Представляет некорневую транзакцию, которая может быть делегирована. Этот класс не наследуется.

Transaction

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

TransactionAbortedException

Исключение, которое вызывается в двух случаях: а) при попытке выполнить операцию по транзакции, для которой уже был выполнен откат; б) когда делается попытка зафиксировать транзакцию, и транзакция прерывается.

TransactionEventArgs

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

TransactionException

Исключение, вызываемое при попытке выполнить операцию по транзакции, которая не может допустить новую операцию.

TransactionInDoubtException

Исключение, которое вызывается в двух случаях: а) при попытке выполнить операцию по транзакции, которая находится в состоянии InDoubt; б) когда делается попытка зафиксировать транзакцию, и транзакция переходит в состояние InDoubt.

TransactionInformation

Предоставляет дополнительные сведения, касающиеся транзакции.

TransactionInterop

Облегчает взаимодействие между System.Transactions и компонентами, которые были разработаны ранее для взаимодействия с MSDTC, COM+ или System.EnterpriseServices. Этот класс не наследуется.

TransactionManager

Содержит методы, используемые для управления транзакциями. Этот класс не наследуется.

TransactionManagerCommunicationException

Исключение возникает, если диспетчер ресурсов не может взаимодействовать с диспетчером транзакций.

TransactionPromotionException

Исключение возникает при сбое преобразования.

TransactionScope

Делает блок кода транзакционным. Этот класс не наследуется.

Структуры

TransactionOptions

Содержит дополнительную информацию, которая задает поведение транзакции.

Интерфейсы

IDtcTransaction

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

IEnlistmentNotification

Описывает интерфейс, который должен реализовать диспетчер ресурсов, чтобы предоставить обратные вызовы уведомлений о двухфазной фиксации диспетчеру транзакций при внесении в список для участия.

IPromotableSinglePhaseNotification

Описывает объект, действующий в качестве делегата фиксации для нераспределенной транзакции, которая является внутренней для диспетчера ресурсов.

ISimpleTransactionSuperior

Представляет транзакцию, которая не является корневой, но может быть расширена, чтобы находиться под управлением MSDTC.

ISinglePhaseNotification

Описывает объект ресурса, который поддерживает оптимизацию однофазной фиксации для участия в транзакции.

ITransactionPromoter

Описывает делегированную транзакцию для существующей транзакции, которая может быть расширена, чтобы при необходимости находиться под управлением MSDTC.

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

DependentCloneOption

Определяет тип зависимой транзакции, которую требуется создать.

EnlistmentOptions

Определяет, должен ли объект быть присоединен в ходе подготовительной фазы.

EnterpriseServicesInteropOption

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

IsolationLevel

Указывает уровень изоляции транзакции.

TransactionScopeAsyncFlowOption

Указывает, включен ли для TransactionScope поток транзакций через продолжения потоков.

TransactionScopeOption

Предоставляет дополнительные параметры для создания области транзакций.

TransactionStatus

Описывает текущее состояние распределенной транзакции.

Делегаты

HostCurrentTransactionCallback

Предоставляет механизм для обеспечения средой внешнего размещения собственного представления по умолчанию для свойства Current.

TransactionCompletedEventHandler

Представляет метод, обрабатывающий событие TransactionCompleted класса Transaction.

TransactionStartedEventHandler

Представляет метод, обрабатывающий событие DistributedTransactionStarted класса TransactionManager.

Комментарии

Инфраструктура System.Transactions упрощает и эффективное программирование транзакций на всей платформе, поддерживая транзакции, инициированные в SQL Server, ADO.NET, MSMQ и координаторе распределенных транзакций Майкрософт (MSDTC). Он предоставляет как явную модель программирования на Transaction основе класса, так и неявную модель программирования с использованием TransactionScope класса , в которой транзакции автоматически управляются инфраструктурой. Настоятельно рекомендуется использовать более простую неявную модель для разработки. Чтобы приступить к работе, см. раздел Реализация неявной транзакции с помощью области транзакции . Дополнительные сведения о написании транзакционного приложения см. в статье Создание транзакционного приложения.

System.Transactions также предоставляет типы для реализации диспетчера ресурсов. Диспетчер транзакций, встроенный в инфраструктуру System.Transactions , позволяет энергонезависимым ресурсам или одному постоянному ресурсу эффективно фиксировать или откатывать. Дополнительные сведения о реализации диспетчера ресурсов см. в разделе Реализация Диспетчера ресурсов.

Диспетчер транзакций также прозрачно перенаправит локальные транзакции в распределенные транзакции путем координации с помощью диспетчера транзакций на диске, например DTC, когда дополнительный устойчивый диспетчер ресурсов заверяет себя в транзакцию. Инфраструктура System.Transactions обеспечивает повышенную производительность двумя основными способами.

  • Динамическая эскалация, которая означает, что System.Transactions инфраструктура использует MSDTC только тогда, когда это действительно требуется для транзакции. Эта область подробно рассматривается в разделе Эскалация управления транзакциями .

  • Повышаемое зачисление. Позволяет ресурсу, например базе данных, стать владельцем транзакции, если он является единственной сущностью, участвующей в транзакции. Позже при необходимости инфраструктура по-прежнему System.Transactions может передать управление транзакцией в MSDTC. Это дополнительно уменьшает вероятность использования координатора MSDTC. Эта область подробно рассматривается в разделе Оптимизация с помощью однофазной фиксации и промотируемых однофазных уведомлений .

Дополнительные сведения об использовании пространства имен см. в System.Transactions разделе Обработка транзакций.