Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal.
Eu desenvolvi uma trigger que faz alterações em uma tabela no linked server sempre que a tabela no banco local é alterada.
Para evitar processamento desnecessário, eu coloquei um teste para verificar se o Linked Server está online ou não.
Eu tentei fazer o teste utilizando o 'sys.sp_testlinkedserver' e utilizando o 'master..xp_cmdshell' com o comando de ping.
Eu executei alguns testes, e eles verificam corretamente se o Linked Server está up ou down. Só que aí começou o problema
da trigger.
Quando eu insiro ou altero um valor da tabela, antes mesmo de entrar na trigger (coloquei mensagens para acompanhar o processo)
ele verifica um teste e informa a seguinte mensagem de erro:
>
OLE DB provider "SQLNCLI" for linked server "SERVIDOR" returned message "Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "SERVIDOR" returned message "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.".
Msg 65535, Level 16, State 1, Line 0
SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
Sendo que SERVIDOR é o nome do Linked Server....
Na trigger, ele não faz nenhuma referência ao Linked Server caso ele esteja down.
O teste é feito direito com o IP da máquina servidor.
Na trigger, o teste é feito da seguinte forma:
DECLARE @ret INT
exec sp_CheckServer @ret OUTPUT
IF (@ret = 1)....
e a Stored Procedure sp_CheckServer é a seguinte:
AS
BEGIN
SET NOCOUNT ON;
DECLARE @srvr NVARCHAR(128), @command NVARCHAR(128);EXEC master..xp_cmdshell @command;
SET @retval = ( SELECT 1 FROM #ping WHERE ResultLine LIKE '%TTL=%' )Aviso a todos que forem me sugerir o 'sys.sp_testlinkedserver': Eu já utilizei essa procedure, o problema é o mesmo... ou seja, não faz diferença qual eu uso.
Se alguém souber qual é o problema e puder me auxiliar, eu ficaria muito grato.
Att.
Paulo Henrique Vieira Neves
Carregando comentários...