Profil de FabianoFabiano BelmonteBlogListesLivre d'orPlus Outils Aide

Blog


5 août

Gerenciando Transações com Trasaction Scope no Asp.Net


Introdução
Neste artigo vou explicar como utilizar o Transaction Scope, que é uma ferramenta que pode ajudar muito no controle de transações de sua aplicação. Também vou mostrar a configuração que deverá ser feita nos servidores para que ele possa funcionar adequadamente, pois muitas pessoas se esquecem deste passo e acabam tendo inúmeros problemas na implemen-tação da funcionalidade em produção ou mesmo no ambiente de teste e desenvolvimento.

O TransactionScope
O .NET Framework 2.0 inclui o namespace System.Transactions que dá um grande suporte a transações distribuídas geren-ciadas pelo Transaction Manager, incluindo Banco de Dados e Serviços de Mensagens(message queues).
O namespace System.Transactions define a classe TransactionScope, que cria e gerencia transações distribuídas.
Devido a sua facilidade de utilização e eficiência, é recomendado que você utilize a classe de TransactionScope para facilitar o controle de transações em sua aplicação, sem que seja necessário (você precise) interagir com a operação propriamente dita.
O TransactionScope pode selecionar e gerenciar o ambiente de Transações automaticamente.
O System.Transactions fornece uma estrutura de transações totalmente integrada ao .NET Framework, mas não se limitando ao ADO.NET.
Utilizando o TransactionScope
O TransactionScope é iniciado quando se cria um novo objeto TransactionScope.
É altamente recomendado que a declaração do scope seja feito dentro da diretiva using, pois ela garante que o objeto dure somente o tempo necessário para sua utilização.
Vamos aos exemplos:
Adicione a referência no projeto ao System.Transaction.

Inclua a referencia na Classe:
image

Incluindo o TransactionScope no Bloco de Codigo:
image 

Completando a transação:
Para “commitar” a transação inserimos uma instrução que será a ultima linha do using.

image

Obs: Caso ocorra algum problema na execução do bloco de código (dentro do using ) automaticamente a transação é abor-tada e o Transaction Maneger executa o Roll Back das alterações.
RollBack:
O RollBack é executado automaticamente quando ocorrer qualquer exceção no bloco que está sendo executado dentro da transação.
Exemplo de utilização:
No cenário abaixo, temos uma transação onde gravamos informações coletadas separadamente (endereço, dados pessoais, etc). Com o Transaction Scope temos a liberdade de gravar as informações separadamente. Suponhamos que estamos gravan-do o cliente e após gravar o Endereço e o Telefone do Cliente da um problema na gravação dos Dados pessoais do mesmo sendo assim o transactionScope faz o Roll Back de tudo! Voltando o objeto ao seu estado original.


image
image

Caso ocorra algum erro durante a gravação de algum desses metodos o TrasactionScope faz o RollBack de tudo, como dito anteriormente. Não havendo nenhum problema a transação é completada normalmente.

A configuração do ambiente
Para que o transactionScope funcione no servidor precisamos fazer algumas configurações, mais somente se o servidor for XP sp2 pra cima! Em Win2000 não precisamos mexer em nada!
Menu Iniciar/Configurações/Painel de Controle/Ferramentas administrativas.
Abra o Serviço de Componentes (como na figura abaixo):

image
Clique com o botão direito do Mouse em Meu Computador(Como na figura Abaixo) e selecione a opção Propriedades.

image
Na janela Clique na aba MSDTC e depois em Configurações de Segurança.

image 

Habilite as opções:
- Acesso ao DTC de Rede. - Permitir Clientes Remotos - Permitir Administração Remota - Permitir Entrada - Permitir Saída - Nenhuma Autenticação Necessária - Permitir Transações do Protocolo TIP - Habilitar Transações XA (como a figura abaixo)

image

Lembrando que essa configuração só deve ser feita em ambientes com sistema operacional Win XP ou Win Server2003. E a mesma deve ser feita tanto no servidor de WEB quanto no de Banco de Dados.
Espero que este artigo contribua com o seu crescimento.

Bons Códigos...
Fabiano Belmonte

Commentaires

Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

Pour ajouter un commentaire, connectez-vous avec votre identifiant Windows Live ID (si vous utilisez Messenger ou Xbox LIVE, vous avez un identifiant Windows Live ID). Connectez-vous


Vous n'avez pas d'identifiant Windows Live ID ? Inscrivez-vous

Rétroliens

L'URL de rétrolien de ce billet est :
http://fabianobelmonte.spaces.live.com/blog/cns!1773A18EC213B259!166.trak
Blogs Web qui font référence à ce billet
  • Aucune