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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Основные понятия

Атрибуты транзакции ServiceModel
Включение потока транзакций