DTC e Virtualização


Recentemente tive um problema curioso devido a virtualização de servidores. O pessoal responsável pela infraestrutura utiliza a mesma base/imagem do sistema operacional quando um novo servidor é criado. Até então, sem nenhum problema aparente.

Como a aplicação que estava sendo instalada trata-se de um processo distribuído, com Message Queues, SQL Server e Windows Services, o DTC é necessário para coordenar todos os processos transacionais. Quando a aplicação roda, todas as transações estavam sendo abortadas.

Depois de uma busca aprofundada, encontrei o motivo do problema: há dentro do registro do Windows uma GUID que identifica o DTC. Justamente pelo fato de que todas as máquinas utilizam uma mesma base comum, essa GUID estava igual em todas elas. A solução para o problema, encontrada no final deste artigo, é criar uma nova GUID (via algum utilitário, como aquele do Visual Studio .NET) e renomear a chave que tem como Description MSDTC dentro de HKEY_CLASSES_ROOTCID em cada máquina participante do processo.

Eis aqui maiores informações sobre ghosting, mas não me compete. 😉

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s