Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite caros colegas programadores de ASP.
Estou em um grande projeto todo em ASP e a aplicação é de uma rede de lojas grande.
Já está tudo funcionando e se conectando pela Internet normalmente.
Mas, há grandes possibilidades de me pedirem relatórios que envolvem dados de vendas de todas as lojas ao mesmo tempo.
Cá entre nós, sabemos que isso daria pau caso qualquer um dos servidores desse problema e o relatório seria anulado por causa de um servidor apenas, pois a 'String de conexão' não acharia o servidor, ou se eu usasse LINKED SERVER daria problema no próprio, o que acaba dando na mesma que conectar direto ao servidor por ADO.
E eu não queria usar o famigerado 'On Error Resume Next'.
Já procurei e consultei alguns programadores conhecidos e nada, bem como o glorioso e salvador GOOGLE.
Em meus anos de estrada no ASP nunca passei por isso, mas provavelmente algum de vocês deve ter passado.
Então lá vai para vocês minha pergunta:
É possível consultar o status de um servidor e jogar numa página ASP o resultado, ou melhor ainda, consultar o status do SQL Server que roda num determinado IP e porta? Supondo que o SQL Server estivesse rodando, o resultado da consulta seria 1, sem estar rodando o resultado seria 0, ou seja, talvez tenha caído a Internet na loja!
Grato,
Giancarlo Braga.
acho que dá pra pingar direto pro sqlserver
ou verificar o status da conexão, verificando se o user esta conectado, você pode ver este exemplo
mas usa o on error
on error resume next
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open MSCSSite.DefaultConnectionString
Set cmdTemp = Server.CreateObject("ADODB.Command")
cmdTemp.CommandType = adCmdText
Set cmdTemp.ActiveConnection = conn
' Se a conexão ADO acima falhar, então nós check
'O número de erro, caso não seja igual a 0, e depois nós mudar
'O MSCSSite.DefaultConnectionString a um dos
'Conexão string no mscssite.connectionstringmap.
'Para os fins deste exemplo, a base de dados é o padrão
'SSCommerce e de backup é SSCommerce2
If Err.Number <> 0 Then
err.clear
mscssite.defaultconnectionstring = mcssite.connectionstringmap("SSCommerce2")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open MSCSSite.DefaultConnectionString
Set cmdTemp = Server.CreateObject("ADODB.Command")
cmdTemp.CommandType = adCmdText
Set cmdTemp.ActiveConnection = conn
End if
em WSH você consegue por exemplo verificar se o SQL server esta instalado, você poderia usá-lo para verificar o status dele, exemplo,
ou verificar o status da conexão
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name = 'MSSQLServer'")
If colServices.Count > 0 Then
For Each objService in colServices
Wscript.Echo "SQL Server está:" & objService.State & "."
Next
Else
Wscript.Echo "SQL Server não esta instalado nessa maquina."
End If