Como determino la disponibilidad de un servidor vinculado

29/04/2004 - 18:10 por José G Alvarez | Informe spam
Hace días coloque un post, con esta misma pregunta, Isaías me dio una
excelente idea de como hacerlo, pero no se si no le he implantado bien, pero
aun sigo con el mismo problema

Necesito saber si un servidor que esta vinculado a mi BBDD esta disponible,
entiéndase como NO DISPONIBLE el hecho de que esté apagado o que los ratones
se hallan comido los cables de red (ya me ha pasado).

La solución de Isaías era esta...

DECLARE @ERROR
EXEC @ERROR = Myserver.Mybase.dbo.pr_MyStore [Parametros]
IF @ERROR <> 0
SELECT 'ERROR' --TOMO LAS ACCIONES NECESARIAS

Pero cuando lo ejecuto en el Query Analizer y desconecto la red para probar,
me da error y sale del proceso por lotes, justo antes de evaluar el valor de
@Error,
Use entonces, el @@Error y aun sigue el mismo problemas, el proceso por
lotes informa del error, pero no termina su ejecución...

Alguna idea de como solucionarlo?

Gracias de antemano

José G. Álvarez
Valencia - Venezuela

Preguntas similare

Leer las respuestas

#1 Isaías
30/04/2004 - 15:48 | Informe spam
Pues despues de los calurosos saludos, ¿Donde quedo el
STORE Emilio?, vos decis, aca tenes un store, y me
pregunto ¿donde quedo la bolita?.

Saludos a todos.
Respuesta Responder a este mensaje
#2 ulises
30/04/2004 - 16:03 | Informe spam
Aunándome a los saludos al regreso de Emilio --cuyos
buenos artículos he leido con intéres :) --, el store lo
envío Emilio como un adjunto, y si ves el Newsgroup via
web no lo vas a poder ver :( (es mi caso cuando lo reviso
en un lugar diferente a casa).

Saludos,
Ulises

Pues despues de los calurosos saludos, ¿Donde quedo el
STORE Emilio?, vos decis, aca tenes un store, y me
pregunto ¿donde quedo la bolita?.

Saludos a todos.
Respuesta Responder a este mensaje
#3 Emilio Boucau
30/04/2004 - 16:25 | Informe spam
Ulises,

me alegrA saber que mis articulos hayan sido de tu interes. A breve
PortalSQL tendra material fresco de mi parte, ya que Miguel y otros
colaboradores más (gracias a todos) lo han mantenido activo.

Para mayor facilidad, aca pongo el codigo del script.

// - INICIO DEL CODIGO

/*


You can pass an additional parameter that indicates if @server is a linked
server. It
will then try and get the network name from sysservers. The parameter is
optional and
is either 'Y' or 'N' (or miss it out) e.g.

declare @up int

exec sp_serverup 'SRVLINK','Y',@up=@up OUTPUT

select @up

*/



CREATE PROCEDURE spu_IsServerUp
(
@server sysname,
@islinked char( 1 ) = 'N',
@up int OUTPUT
)
AS
/*
1 = Running
-1 = Down
*/

SET NOCOUNT ON

DECLARE @hr int
DECLARE @sql int
DECLARE @cnt int ; SET @cnt = 0
DECLARE @server_resolved sysname
DECLARE @status int ; SET @status = 0

IF @islinked = 'Y'
BEGIN

SELECT @cnt = COUNT(*)
FROM master..sysservers
WHERE srvname = @server
AND isremote = 1

IF @cnt <> 1
BEGIN
RAISERROR( 'Linked server name cannot be resolved', 16, 1 )
RETURN( 1 )
END

SELECT @server_resolved = datasource
FROM master..sysservers
WHERE srvname = @server
AND isremote = 1

END
ELSE
BEGIN

SELECT @server_resolved = @server

END

EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @sql OUTPUT
IF @hr<>0 EXEC sp_OAGetErrorInfo @sql

EXEC @hr = sp_OASetProperty @sql, 'LoginSecure', 'True'
EXEC @hr = sp_OASetProperty @sql, 'LoginTimeout', 10
EXEC @hr = sp_OAMethod @sql, 'Connect', null,@server_resolved
IF @hr<>0 EXEC sp_OAGetErrorInfo @sql

EXEC @hr = sp_OAGetProperty @sql,'Status', @status OUTPUT
EXEC @hr = sp_OAMethod @sql, 'DisConnect', null
EXEC @hr = sp_OADestroy @sql

SELECT @up = CASE WHEN @status = 1
THEN 1 ELSE -1 END

RETURN


// - FIN DEL CODIGO




Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
#4 José G Alvarez
30/04/2004 - 21:14 | Informe spam
Gracias Emilio por tu valiosa ayuda.

Aunque no conozco mucho de SQL, estoy tratando de entender el SP que
posteaste, y creo que casi lo entiendo, pero cuando ejecuta el metodo
connect del objeto SQLDMO.SQLServer

EXEC @hr = sp_OAMethod @sql, 'Connect', null, @server_resolved

Me da el siguiente error, podrias aclararme a que se debe y/o como
corregirlo?

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT
AUTHORITY\ANONYMOUS LOGON'.

Gracias de nuevo...
Respuesta Responder a este mensaje
#5 Carlos Sacristan
03/05/2004 - 08:53 | Informe spam
Emilio Boucau? Mmmmm... el caso es que el nombre de esa persona me
resulta familiar... ¿no era alguien que hace muuuuuuuuuuuuuuuuuuuuucho
tiempo aparecía por aquí? Por favor, que alguien me confirme esta vaga
impresión

;-)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Emilio Boucau" escribió en el mensaje
news:
Miguel, como estas mi amigo !!! Como dicen uds. los españoles, ando muy
liado con el trabajo, pero esto es mas fuerte que yo y estoy retomando la
actividad aqui con uds. Ya nos veremos mas seguido.

Un abrazo grande para todos !!


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida