Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1189
Assunto : .NET
Titulo: Cuidado ao utilizar o TransactionScope no .NET

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon




O TransactionScope do Framework .NET é excelente para controlar transações em arquiteturas componentizadas, mas suas configurações default são muito ruins. As configurações default evitam alguns desastres quando o desenvolvedor não faz idéia do que está fazendo, mas causam outros mais.

Por default o TransactionScope do .NET utiliza o isolation level Serializable. Esse isolation level causa uma contenção extrema nos acessos ao servidor de banco e, pior ainda, são extremos causadores de deadlocks. Atividades simultaneas no servidor de banco causarão deadlocks com uma frequência alta.

A solução é muito simples: Alterar a configuração default do transactionscope para que não use o isolation level serializable. Muito melhor seria utilizar o isolation level read committed.

Uma configuração padrão do TransactionScope é a seguinte:


using (var ts = new TransactionScope())
{
}


Trocamos pelo seguinte:


using (var cadastro = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.ReadCommitted }))
{

}


Com isso solucionamos problemas de contenção e problemas com DeadLocks.

Vejam meu vídeo sobre isolation level em https://www.youtube.com/playlist?list=PLNbt9tnNIlQ6x9JCwu9sfXbkEp2srN-QI


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br