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.

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.