Como utilizar o Distributed Transaction Coordinator (DTC) ?

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:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679938(v=vs.85).aspx
http://technet.microsoft.com/en-us/library/cc759136(WS.10).aspx

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
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele 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.

0 comentário em “Como utilizar o Distributed Transaction Coordinator (DTC) ?

Deixe um comentário