Использование WS-AtomicTransaction
WS-AtomicTransaction (WS-AT) — это протокол передачи транзакций с возможностью взаимодействия. Он позволяет передавать распределенные транзакции, используя сообщения веб-служб, и обеспечивать взаимодействие между разнородными инфраструктурами транзакций. WS-AT использует протокол двухфазной фиксации для передачи атомарного результата между распределенными приложениями, диспетчерами транзакций и диспетчерами ресурсов.
Реализация WS-AT, которую обеспечивает Windows Communication Foundation (WCF), включает службу протокола, встроенную в диспетчер транзакций координатора распределенных транзакций Майкрософт (MSDTC). С помощью WS-AT приложения WCF могут передавать транзакции другим приложениям, включая веб-службы с возможностью взаимодействия, созданные с использованием сторонней технологии.
При передаче транзакции между клиентским и серверным приложениями используемый протокол передачи транзакций определяется привязкой, которую сервер представляет на конечной точке, выбранной клиентом. Некоторые привязки, предоставляемые системой WCF, в качестве формата распространения транзакций по умолчанию задают протокол OleTransactions, тогда как другие привязки по умолчанию определяют протокол WS-AT. Можно также программно изменить выбор протокола передачи транзакций внутри заданной привязки.
Выбор протокола оказывает влияние на:
формат заголовков сообщений, используемых для передачи транзакции от клиента к серверу;
сетевой протокол, используемый для выполнения протокола двухфазной фиксации между диспетчером транзакций клиента и транзакцией сервера с целью распознавания результата транзакции.
Если сервер и клиент написаны с помощью WCF, использовать WS-AT не требуется. Вместо этого воспользуйтесь параметрами по умолчанию привязки NetTcpBinding с включенным атрибутом TransactionFlow. При этом будет применяться протокол OleTransactions. Дополнительные сведения см. в разделе <netTcpBinding>. В противном случае, если транзакции передаются в веб-службы, созданные на основе сторонних технологий, необходимо использовать протокол WS-AT.