|
Transações Atômicas com o Distributed Transaction Coordinator (DTC) |
O que é DTC – Distributed Transaction Coordinator?
O DTC é uma infraestrutura distribuída de serviços para realização de transações. Ele está disponível no Windows Server 2003 SP1 ou superior. O DTC é especialmente útil em cenários distribuídos com serviços conectados, diferentes bancos de dados, transações com arquivos em disco, message queues entre outros.
Porque utilizar o DTC?
Quando se cria uma aplicação que persiste dados em banco de dados, fatalmente será necessário o uso de transações atômicas, utilizando BEGIN TRANSACTION, ROLLBACK, COMMIT. Quando se guarda arquivos em disco isto é um pouco mais complicado porque normalmente é tratado manualmente. Se der algum tipo de falha o programador deve saber voltar o ambiente para o último estado estável. Em cenários com múltiplos bancos de dados ou com aplicações distribuídas em serviços COM, COM+, WebServices ou quaisquer outras tecnologias, o DTC é bastante relevante.
A Microsoft e empresas terceiras criaram várias aplicações transacionais que implementam o DTC. Desta forma, tanto o SQL Server 2008 quanto o Oracle 9i funcionam de maneira distribuída com o DTC.
Como instalar o DTC?
O Distributed Transaction Coordinator deve ser configurado em todas as maquinas que envolvam a transação distribuída. Numa aplicação distribuída em 3 camadas, tanto a maquina com a camada de apresentação, quando a de negócios quanto a maquina com o banco de dados devem estar devidamente configuradas.
A Seguir pode-se ver como configurar o DTC em 6 passos, divididos em 2 partes. A configuração vista a seguir é padrão. Caso existam necessidades específicas de login ou outros detalhes, verifique a documentação oficial em:
1 – Como configurar o DTC – Distributed Transaction Coordinator?
1.1 – Vá no Painel de Controle, Administrative Tools, Component Services
|
Figura 1– Painel de Controle – Component Services |
1.2 – No Component Services, expanda a arvore:
Component Services > Computers > My Computer > Local DTC.
Clique com o botão direito em Local DTC. Após, clique em propriedades.
|
Figura 2 – Encontrando o DTC no Component Services |
1.3 – Na tela de propriedades do Local DTC, vá para a guia Security
|
Figura 3 – Abrindo as propriedades do Component Services |
1.4 – Na guia Security do Local DTC, Marque as propriedades abaixo:
· Network DTC Access
· Cliente and Administration
o Allow Remote Clients
o Allow Remote Administration (não é obrigatório)
· Transaction Manager Communication
o Allow Inbound
o Allow Outbound
o Mutual Authentication Required
· Enable SNA LU 6.2 Transactions
Mantenha a área de login, DTC Logon Account, com o usuário padrão.
|
Figura 4 – Configurando o DTC |
2 – Como liberar o Firewall para o DTC – Distributed Transaction Coordinator?
Após configurar o DTC é necessária sua liberação no Firewall de todas as maquinas envolvidas na transação.
2.1 – Vá no Painel de Controle e abra o Windows Firewall. Clique em ‘Allow a program or feature through Windows Firewall’
|
Figura 5 – Abrindo as configurações do Firewall |
2.2 – Aparecerá um tela com uma lista de programas. Selecione o ‘Distributed Transaction Coordinator’, conforme a figura abaixo.
|
Figura 6 – Criando uma exceção para o uso do DTC no Firewall |
Como utilizar o DTC em uma aplicação?
Num próximo Tópico eu exploro os detalhes de como trabalhar Desenvolvendo uma transação que utilize a infraestrutura do Distributed Transaction Coordinator (DTC). Para o momento, deixo o link do MSDN para o classe TransactionScope, base para este cenário: http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx
Thiago Anselme - Gerente de TI - Arquiteto de SoluçõesEle atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.
Muito bom, parabéns.
Muito bom. Me ajudou a solucionar um problema de transação.
Obrigadão!!!!