Recursos fornecidos por System.Transactions
Esta seção descreve como você pode usar os recursos fornecidos pelo System.Transactions namespace para escrever seu próprio Gerenciador de recursos e dos aplicativos transacional. Especificamente, esta seção aborda como criar e participar de uma transação (local ou distribuída) com um ou vários participantes.
Visão geral do System. Transactions
A infra-estrutura fornecida pelas classes de System.Transactions namespace torna transacional de programação simples e eficiente, oferecendo suporte a transações iniciadas no SQL Server, ADO.NET, enfileiramento de mensagens (MSMQ) e Microsoft Distributed Transaction coordenador (MSDTC). O System.Transactions namespace fornece dois um modelo de programação explícito com base no Transaction classe, bem como um modelo de programação implícito usando a TransactionScope classe, em que as transações são automaticamente gerenciadas pela infra-estrutura. Para obter mais informações sobre como criar um aplicativo transacional usando esses dois modelos, consulte Escrever um Aplicativo Transacional.
O System.Transactions namespace também fornece tipos para implementar um Gerenciador de recursos. Um Gerenciador de recursos gerencia dados duráveis ou voláteis usados em uma transação e trabalhar em cooperação com o Gerenciador de transações para fornecer o aplicativo com uma garantia de atomicidade e isolamento. O Gerenciador de transações fornecida pelo System.Transactions infra-estrutura oferece suporte a transações que envolvem vários recursos voláteis ou um único recurso durável. Para obter mais informações sobre como implementar um gerenciador de recursos, consulte Implementar um Gerenciador de Recursos.
O Gerenciador de transações também transparentemente escala transações locais para transações distribuídas através da coordenação com um Gerenciador de transações baseadas em disco como o DTC, quando um Gerenciador de recursos adicionais de durável inscreve-se com uma transação. Há duas maneiras principais que o System.Transactions infra-estrutura proporciona um desempenho aprimorado.
Escalonamento dinâmico, o que garante que o System.Transactions infra-estrutura apenas emprega o MSDTC quando uma transação engloba vários recursos distribuídos. Para obter mais informações sobre o escalonamento dinâmico. consulte o tópico Escalonamento de Gerenciamento de Transações.
Podem ser promovidas inscrições, que permite que um recurso, como um banco de dados, apropriar-se da transação se for a única entidade participa da transação. Posteriormente, se necessário, o System.Transactions infra-estrutura ainda pode escalonar o gerenciamento da transação para o MSDTC. Isso reduz ainda mais a possibilidade de usar o MSDTC. As Inscrições Passíveis de Promoção são abordadas detalhadamente no tópicoOtimização usando Confirmação de Fase Única e Notificação de Fase Única Passível de Promoção.
O System.Transactions namespace define três níveis de confiança - AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission(DTP) e confiança total - que restringem o acesso aos tipos de recursos ele expõe. Para obter mais informações sobre os vários níveis de confiança, consulte Níveis de Confiança de Segurança no Acesso aos Recursos.
Nesta seção
Escrevendo um aplicativo transacional
O System.Transactions namespace fornece dois modelos para criar aplicativos transacionais. Implementar uma Transação Implícita usando o Escopo de Transação descreve como o namespace System.Transactions oferece suporte à criação de transações implícitas usando a classe TransactionScope.
Implementar uma Transação Explícita usando CommittableTransaction descreve como o namespace System.Transactions oferece suporte à criação de transações explícitas usando a classe CommittableTransaction.
Para consultar tópicos adicionais sobre como escrever um aplicativo transacional, consulte Escrever um Aplicativo Transacional.
Implementar um Gerenciador de recursos
Para implementar um gerenciador de recursos que possa participar de uma transação, consulte Implementar um Gerenciador de Recursos. Esta seção aborda a inscrição de um recurso, confirmar uma transação, a recuperação após falha e práticas recomendadas de otimização.