Configurando níveis de isolamento de transação

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 nível mais alto 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 banco de dados grande. 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
Modelo 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 podem ser inseridos novos dados que afetem a transação atual. Esse é 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 confirmada Uma transação não pode ler dados que estão sendo modificados por outra transação que não foi confirmada. Esse é o nível de isolamento padrão no Microsoft SQL Server.
Leitura não confirmada Uma transação pode ler quaisquer dados, mesmo que esteja sendo modificada 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 downstream para evitar conflitos. Essa configuração é útil porque qualquer componente downstream deve ser configurado com um nível de isolamento igual ou menor que o nível de isolamento de seu componente upstream 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 estiver 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.

 

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