locked
Teste de conectividade de um linked server. RRS feed

  • Pergunta

  • Caros amigos,

     

    Estou desenvolvendo uma procedure onde antes de executar um select em um linked server, preciso verificar se o mesmo está on-line, ou seja, preciso testar sua conectividade a fim de tratar uma possível exceção caso o mesmo esteja off-line.

     

    Vcs têm algum exemplo ?

    quinta-feira, 17 de janeiro de 2008 20:00

Todas as Respostas

  •  

    Olá Anselmo!!

     

    Esse tipo de teste no SQL 2000 é um pouco complicado.

     

    Se fosse no SQL 2005, poderia utilizar tranquilamente o TRY...CATCH...

     

    Já no SQL 2000 só na base do Workaround...

     

    Teste este código e depois retorne:

     

    Code Block

    SET XACT_ABORT OFF -- Evita abort

    SELECT 1 FROM Servidor.NomeDaDatabase.dbo.AlgumaTabela WHERE IdDaTabela = 1

    IF @@ERROR <> 0

    -- É pq aconteceu erro

    SET XACT_ABORT ON

     

     

     

    Abraço!!!

    quinta-feira, 17 de janeiro de 2008 20:27
  •  

    no sql 2005 temos a sp_testlinkedserver.

     

    agora no sql 2000 fica mais complicado, a ideia do alexandre e boa, outra ideia e testar se o servico do sql esta no ar via vb script. mais acho mais simples a ideia do Alexandre.

     

    Abs;

    sexta-feira, 18 de janeiro de 2008 09:51
  • Marcelo,

     

    Concordo plenamente.

    sexta-feira, 18 de janeiro de 2008 11:52
    Moderador
  • Não funcionou... ele retorna erro dizendo que não foi possivel encontrar o linked server.

    sexta-feira, 18 de janeiro de 2008 16:18
  •  

    O Linked Server foi criado?? Para fazer um teste verdadeiro, teria que criar um linked server e testar com ele.

     

    Abraço

    sexta-feira, 18 de janeiro de 2008 16:56
  •  

    Realmente, acontece pelo nível de gravidade do erro gerado. Se fosse até o nível 10, funcionaria. Como deve estar gerando com nível 14 ou 16, ele está abortando, mesmo executando aquela instrução "SET" que passei.

     

    Então, creio ser melhor fazer um teste para o retorno dado a aplicação, se der erro na hora de executar, e o erro for de algum código específico, então executa alguma tarefa que você quiser.

     

     

    Abraço!!

    sexta-feira, 18 de janeiro de 2008 17:13
  • Anselmo,

     

    Mas você possui um linked server criado neste servidor?

    sexta-feira, 18 de janeiro de 2008 17:17
    Moderador
  • Alexandre,

     

    Desculpe-me mas não estou conseguindo entender em qual ponto esta sendo especificado este nível de gravidade!!!

    sexta-feira, 18 de janeiro de 2008 17:19
    Moderador
  •  

    O nível de gravidade não é especificado por nós, ele já vem definido no próprio erro interno do SQL.

     

    Fiz alguns testes tentando mudar o nível de gravidade, mas não tive sucesso.

    sexta-feira, 18 de janeiro de 2008 18:09
  • Marcelo,

     

    Como eu poderia fazer esse teste ? Vc tem algum exemplo ?

    quinta-feira, 7 de fevereiro de 2008 11:50