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.
Tópicos relacionados