Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В этом разделе описывается, как использовать функции, предоставляемые 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 инфраструктура взаимодействует с MSDTC только если транзакция охватывает несколько распределенных ресурсов. Дополнительная информация о динамической эскалации. См. раздел "Эскалация управления транзакциями ".
Продвигаемые зачисления, позволяющие ресурсу, например, базе данных, взять на себя управление транзакцией, если это единственный участник транзакции. Позже, System.Transactions если это необходимо, инфраструктура по-прежнему может повысить управление транзакцией до MSDTC. Это еще больше снижает вероятность использования MSDTC. Повышаемые назначения подробно рассматриваются в разделеоптимизации с помощью одноэтапной фиксации и уведомления о повышаемом одноэтапном процессе.
Пространство System.Transactions имен определяет три уровня доверия — AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) и полное доверие — которые ограничивают доступ к типам ресурсов, которые оно предоставляет. Дополнительные сведения о различных уровнях доверия см. в разделе "Уровни доверия безопасности" в службах доступа к ресурсам.
В этом разделе
Написание транзакционного приложения
Пространство имен System.Transactions предлагает два варианта для разработки транзакционных приложений. Реализация неявной транзакции с помощью области транзакций описывает, как System.Transactions пространство имен поддерживает создание неявных транзакций с помощью TransactionScope класса.
Реализация явной транзакции с помощью CommittableTransaction описывает, как System.Transactions пространство имен поддерживает создание явных транзакций с помощью класса CommittableTransaction.
Дополнительные разделы, посвященные написанию транзакционного приложения, см. в статье "Написание транзакционного приложения".
Реализация менеджера ресурсов
Сведения о реализации диспетчера ресурсов, который может участвовать в транзакции, см. в статье "Реализация Resource Manager". В этом разделе рассматривается перечисление ресурса, фиксация транзакции, восстановление после сбоя и рекомендации по оптимизации.