Partilhar via


Configurando níveis de isolamento de transação

COM+ dá aos desenvolvedores mais controle sobre seus aplicativos, permitindo níveis configuráveis de isolamento de transações. As versões do COM+ anteriores ao COM+ 1.5 sempre usavam o mais alto nível de isolamento para transações. Embora esse nível garanta que a integridade dos dados seja sempre preservada, ele pode levar a problemas de desempenho, como tempos limites, quando muitas transações precisam ser executadas em um grande banco de dados. Com níveis de isolamento configuráveis, desenvolvedores experientes podem aumentar a simultaneidade para melhorar o desempenho e a escalabilidade.

COM+ fornece os seguintes níveis de isolamento de transação.

Nível Descrição
Serializado Os dados lidos por uma transação atual não podem ser alterados por outra transação até que a transação atual seja concluída. Não é possível inserir novos dados que afetem a transação atual. Este é o nível de isolamento mais seguro e é o padrão.
Leitura repetível Os dados lidos por uma transação atual não podem ser alterados por outra transação até que a transação atual seja concluída. Qualquer tipo de novo dado pode ser inserido durante uma transação.
Leitura comprometida Uma transação não pode ler dados que estão sendo modificados por outra transação que não foi confirmada. Este é o nível de isolamento padrão no Microsoft SQL Server.
Ler sem compromisso Uma transação pode ler quaisquer dados, mesmo que estejam a ser modificados por outra transação. Este é o nível de isolamento menos seguro, mas permite a maior simultaneidade.
Qualquer Qualquer nível de isolamento é suportado. Essa configuração é mais comumente usada por componentes a jusante para evitar conflitos. Essa configuração é útil porque qualquer componente a jusante deve ser configurado com um nível de isolamento igual ou inferior ao nível de isolamento do seu componente a montante imediato. Portanto, um componente downstream que tem seu nível de isolamento configurado como Any sempre usa o mesmo nível de isolamento que seu componente upstream imediato usa. Se o objeto raiz em uma transação tiver seu nível de isolamento configurado como Any, seu nível de isolamento se tornará Serialized.

 

Observação

Se um componente downstream for configurado com um nível de isolamento mais alto do que um componente upstream e tentar se alistar em uma transação, um erro resultará e a transação será anulada.

 

Definindo o nível de isolamento da transação