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

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

Обзор System.Transactions

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

Пространство System.Transactions имен также предоставляет типы, которые можно использовать для реализации диспетчера ресурсов. Диспетчер ресурсов управляет устойчивыми или переменными данными, используемыми в транзакции, и работает в сотрудничестве с диспетчером транзакций, чтобы обеспечить приложение с гарантией атомарности и изоляции. Диспетчер транзакций, предоставляемый System.Transactions инфраструктурой, поддерживает транзакции с участием нескольких переменных ресурсов или одного устойчивого ресурса. Дополнительные сведения о реализации диспетчера ресурсов см. в разделе "Implementing a Resource Manager".

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

Пространство System.Transactions имен определяет три уровня доверия — AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) и полное доверие — которые ограничивают доступ к типам ресурсов, которые оно предоставляет. Дополнительные сведения о различных уровнях доверия см. в разделе "Уровни доверия безопасности" в службах доступа к ресурсам.

В этом разделе

Написание транзакционного приложения

Пространство имен System.Transactions предлагает два варианта для разработки транзакционных приложений. Реализация неявной транзакции с помощью области транзакций описывает, как System.Transactions пространство имен поддерживает создание неявных транзакций с помощью TransactionScope класса.

Реализация явной транзакции с помощью CommittableTransaction описывает, как System.Transactions пространство имен поддерживает создание явных транзакций с помощью класса CommittableTransaction.

Дополнительные разделы, посвященные написанию транзакционного приложения, см. в статье "Написание транзакционного приложения".

Реализация менеджера ресурсов

Сведения о реализации диспетчера ресурсов, который может участвовать в транзакции, см. в статье "Реализация Resource Manager". В этом разделе рассматривается перечисление ресурса, фиксация транзакции, восстановление после сбоя и рекомендации по оптимизации.