Share via


Visão geral de transações do Windows Communication Foundation

As transações fornecem uma maneira de agrupar um conjunto de ações ou operações em uma única unidade indivisível de execução. Uma transação é uma coleção de operações com as seguintes propriedades:

  • Atomicidade. Isso garante que todas as atualizações concluídas em uma transação específica sejam confirmadas e tornadas duráveis ou sejam todas anuladas e revertidas para o estado anterior.

  • Consistência. Isso garante que as alterações feitas em uma transação representem uma transformação de um estado consistente para outro. Por exemplo, uma transação que transfere dinheiro de uma conta corrente para uma conta poupança não altera a quantidade de dinheiro na conta bancária no geral.

  • Isolamento. Isso impede que uma transação observe alterações não confirmadas pertencentes a outras transações simultâneas. O isolamento fornece uma abstração de simultaneidade, garantindo que uma transação não possa ter um impacto inesperado na execução de outra transação.

  • Durabilidade. Isso significa que, uma vez confirmadas, as atualizações para recursos gerenciados (como um registro de banco de dados) serão persistentes diante de falhas.

O WCF (Windows Communication Foundation) fornece um conjunto avançado de recursos que permitem que você crie transações distribuídas em seu aplicativo de serviço Web.

O WCF implementa o suporte para o protocolo WS-AtomicTransaction (WS-AT) que permite que aplicativos WCF fluam transações para aplicativos interoperáveis, como serviços Web interoperáveis criados usando tecnologia de terceiros. O WCF também implementa o suporte para o protocolo Transações OLE, que pode ser usado em cenários em que você não precisa de funcionalidade de interoperabilidade para habilitar o fluxo de transações.

Você pode usar um arquivo de configuração de aplicativo para configurar associações a fim de habilitar ou desabilitar o fluxo de transação, bem como definir o protocolo de transação desejado em uma associação. Além disso, você pode definir tempos limite de transação no nível do serviço usando o arquivo de configuração. Para obter mais informações, confira Habilitação do fluxo de transações.

Os atributos de transação no namespace System.ServiceModel permitem que você faça o seguinte:

Para obter mais informações, confira Atributos de transação do ServiceModel.

Confira também