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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также