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


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

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

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

Общие сведения о пространстве имен System.Transactions

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

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

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

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

В данном разделе

Создание транзакционного приложения

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

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

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

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

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