Olá pessoal,
Boa noite!
Neste post vou demonstrar como validar pelo SQL Server, se um servidor está respondendo à rede, utilizando o CLR (C#) e a classe PING, que simula uma requisição de ping que você realiza no prompt do DOS no Windows ou no Shell do Unix.
No dia a dia, utilizo muito essa função para verificar se um servidor de compartilhamento de arquivos, por exemplo, está disponível para gravar arquivos de rotinas de bancos de dados. Caso contrário, posso fazer com que minha rotina dispare um e-mail ou mesmo grave esses arquivos em outro diretório. Podemos utilizar essa função para criar monitoramentos de servidores também. Enfim, as possibilidades são muitas, e variam de acordo com a sua necessidade e criatividade.
Código-fonte da função do CLR (C#):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System; using System.Data.SqlTypes; using System.Net.NetworkInformation; public partial class UserDefinedFunctions { [Microsoft.SqlServer.Server.SqlFunction] public static SqlBoolean fncMaquina_Ligada(SqlString Ds_Hostname) { try { var ping = new Ping(); var reply = ping.Send(Ds_Hostname.Value, 5); //timeout em segundos return (reply != null) && (reply.Status == IPStatus.Success); } catch (Exception e) { return false; } } } |
Uma vez compilada no banco de dados, podemos utilizar a função assim:
E é isso aí, pessoal!
Grande abraço e até o próximo post.
SQL Server – Como verificar se a máquina está ligada check computer server is online ping
SQL Server – Como verificar se a máquina está ligada check computer server is online ping