Published on

July 1, 2020

Resolução de problemas de conexão SSIS no SQL Server

Recentemente, me deparei com uma consulta de um cliente sobre problemas de conectividade entre o SSIS no servidor de banco de dados e um servidor de aplicativos. O cliente estava recebendo a mensagem de erro: “Falha ao conectar ao serviço Integration Services no computador ‘SQL’ com o seguinte erro: ‘Classe não registrada’.”

Ao analisar a mensagem de erro, ficou evidente que o problema estava relacionado a um problema de registro ou DLLs ausentes. Não era um problema de segurança ou bloqueio de conexão. Para começar a solucionar o problema, verifiquei as versões do SSIS e SSMS no servidor de aplicativos e descobri uma incompatibilidade de versão. É crucial que as versões do SSIS e SSMS correspondam para estabelecer uma conexão bem-sucedida.

Inicialmente, pensei que atualizar a versão do SSMS no servidor de aplicativos resolveria o problema. No entanto, mesmo após a atualização, encontrei uma mensagem de erro diferente: “O servidor RPC não está disponível. (Exceção de HRESULT: 0x800706BA) (Microsoft.SqlServer.DTSRuntimeWrap)”.

Neste ambiente específico, o SQL Server 2016 estava sendo executado como uma instância nomeada em uma porta estática. O login do aplicativo não tinha associação ao grupo de administradores locais no servidor de banco de dados, de acordo com os padrões da empresa. Para solucionar o problema, segui estas etapas:

  1. Verifiquei se o serviço RPC estava em execução, conforme indicado pela mensagem de erro.
  2. Garanti que a segurança estivesse configurada corretamente para o SSIS nas permissões de grupo administrador e DCOM, mesmo que não houvesse erros relacionados a permissões.
  3. Testei a conexão na porta 135 do servidor de aplicativos para o servidor de banco de dados usando o comando telnet, pois o SSIS utiliza esse número de porta.

Apesar de concluir essas etapas, o aplicativo ainda não conseguia se conectar ao SSIS. Neste ponto, descartei as permissões como causa do erro e considerei outras possibilidades, como problemas de rede ou bloqueio de conexão. Como os firewalls geralmente estão habilitados em servidores de banco de dados na maioria das empresas, suspeitei que o firewall poderia estar bloqueando a conexão.

Para testar essa hipótese, desativei temporariamente o firewall durante as horas não produtivas e descobri que a conexão começou a funcionar. No entanto, era essencial reativar o firewall e investigar o problema mais a fundo usando o comando netstat. Descobri que o SSIS não estava usando a porta 135, mas sim, estava sendo executado em uma faixa de portas superiores (dinâmicas) que mudavam toda vez que o serviço era reiniciado.

Para resolver o problema, era necessário garantir que todas as portas dinâmicas dentro da faixa de 49152-65535 estivessem abertas e que todas as conexões fossem permitidas a partir do MsDtsSrvr.exe. Criei uma regra no Firewall do Windows no servidor de banco de dados, especificando a configuração da regra de entrada da seguinte forma:

  • Nome da regra: Test_RPC1
  • Direção da regra: Entrada
  • Ação da regra: Permitir a conexão
  • Protocolo: TCP
  • IP local: (10.10.xx.xx)
  • IP remoto: Endereço IP do servidor de aplicativos – APP1
  • Porta local: (vazio)
  • Porta remota: 49152-65535

Após implementar essa regra, o problema de conectividade foi resolvido com sucesso e o cliente pôde se conectar ao SSIS sem mais problemas.

É importante observar que a resolução de problemas de conexão SSIS requer uma abordagem sistemática, considerando fatores como compatibilidade de versão, permissões, configuração de rede e configurações de firewall. Ao seguir as etapas descritas neste artigo, você pode diagnosticar e resolver problemas semelhantes em seu ambiente do SQL Server de forma eficaz.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.