Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
O de promoção de
Assim, a promoção de transações minimiza a sobrecarga de transações distribuídas, adiando a criação de uma transação distribuída até que seja necessária. A promoção de transações é automática se tiver sido ativada usando a palavra-chave Enlist e não requer a intervenção do desenvolvedor. O Provedor de Dados do .NET Framework para SQL Server fornece suporte para promoção de transações, manipuladas por meio das classes no namespace do .NET Framework System.Data.SqlClient.
A palavra-chave Enlist
A propriedade ConnectionString de um objeto SqlConnection suporta a palavra-chave Enlist, que indica se System.Data.SqlClient deteta contextos transacionais e inscreve automaticamente a conexão em uma transação distribuída. Se essa palavra-chave estiver definida como true (o padrão), a conexão será automaticamente incluída no contexto de transação atual do thread de abertura. Se essa palavra-chave estiver definida como false, a conexão SqlClient não interage com uma transação distribuída. Se Enlist não for especificado na cadeia de conexão, a conexão será automaticamente alistada em uma transação distribuída se uma for detetada no momento em que a conexão for aberta.
Transações distribuídas
As transações distribuídas normalmente consomem recursos significativos do sistema. O Microsoft Distributed Transaction Coordinator (MS DTC) gerencia essas transações e integra todos os gerenciadores de recursos acessados nessas transações. A promoção de transações, por outro lado, é uma forma especial de uma transação System.Transactions que efetivamente delega o trabalho a uma transação simples do SQL Server.
System.Transactions, System.Data.SqlCliente SQL Server coordenam o trabalho envolvido no tratamento da transação, promovendo-a para uma transação distribuída completa, conforme necessário.
O benefício de usar a promoção de transação é que, quando uma conexão é aberta com uma transação de TransactionScope ativa e nenhuma outra conexão é aberta, a transação é confirmada como uma transação leve, em vez de incorrer na sobrecarga extra de uma transação distribuída completa. Para obter mais informações sobre TransactionScope, consulte Usar System.Transactions.