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


Общие сведения о транзакциях Windows Communication Foundation

Транзакции предоставляют способ группировки набора действий или операций в одну невидимую единицу выполнения. Транзакция — это коллекция операций со следующими свойствами:

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

  • Согласованность. Это гарантирует, что изменения, внесенные в транзакцию, представляют собой преобразование из одного согласованного состояния в другое. Например, транзакция, которая передает деньги из чекового счета в сберегательный счет, не изменяет сумму денег в общем банковском счете.

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

  • Долговечность. Это означает, что после фиксирования обновления управляемых ресурсов (например, записи базы данных) будут сохраняться в случае сбоев.

Windows Communication Foundation (WCF) предоставляет широкий набор функций, позволяющих создавать распределенные транзакции в приложении веб-службы.

WCF реализует поддержку протокола WS-AtomicTransaction (WS-AT), который позволяет приложениям WCF передавать транзакции в совместимые приложения, например веб-службы взаимодействия, созданные с помощью сторонних технологий. WCF также реализует поддержку протокола OLE Transactions, который можно использовать в сценариях, где для включения потока транзакций не требуются функции взаимодействия.

Вы можете использовать файл конфигурации приложения для настройки привязок для включения или отключения потока транзакций, а также задания требуемого протокола транзакций в привязке. Кроме того, можно задать время ожидания транзакций на уровне обслуживания с помощью файла конфигурации. Дополнительные сведения см. в разделе "Включение потока транзакций".

Атрибуты транзакций System.ServiceModel в пространстве имен позволяют выполнять следующие действия:

  • Настройте время ожидания транзакций и фильтрацию на уровне изоляции с помощью атрибута ServiceBehaviorAttribute .

  • Включите функции транзакций и настройте поведение завершения транзакций с помощью атрибута OperationBehaviorAttribute .

  • Используйте атрибуты ServiceContractAttribute и OperationContractAttribute в методе контракта, чтобы требовать, разрешать или запрещать поток транзакций.

Дополнительные сведения см. в разделе "Атрибуты транзакций ServiceModel".

См. также