Bonjour;
Lorsque j'exécute cette ps, le serveur SQL distant crash ?
J'ai un serveur "SRV1" qui appelle à distance une procedure
stockée sur un autre serveur "SRV2" pour contacter une
url http.
Commande lancée sur SRV1:
DECLARE @ReadMe VARCHAR(8000)
DECLARE @Url VARCHAR(8000)
SET @Url = 'http://........'
EXEC [SRV2].[Toto].dbo.AppelUrl @Url, @Reponse OUTPUT
Declaration de la requete AppelUrl (qui explose le
serveur SRV2 malheureusement...)
La ps :
==========================================================
CREATE PROCEDURE dbo.AppelURL (@URL VARCHAR(300),
@Lecture VARCHAR(8000) OUTPUT)
AS
DECLARE @Object INT
DECLARE @Return INT
DECLARE @Return2 VARCHAR(8000)
DECLARE @URLTEXT VARCHAR(8000)
DECLARE @Valid BIT SET @Valid = 0 --default to false
--create the XMLHTTP object
EXEC @Return = sp_oacreate 'MSXML2.ServerXMLHTTP.3.0',
@Object OUTPUT
IF @Return = 0
BEGIN
DECLARE @Method VARCHAR(350)
--define setTimeouts method
--Resolve, Connect, Send, Receive
SET @Method = 'setTimeouts(45000, 45000, 45000, 45000)'
--set the timeouts
EXEC @Return = sp_oamethod @Object, @Method
IF @Return = 0
BEGIN
--define open method
SET @Method = 'open("GET", "' + @URL + '", false)'
--Open the connection
EXEC @Return = sp_oamethod @Object, @Method
END
IF @Return = 0
BEGIN
--SEND the request
EXEC @Return = sp_oamethod @Object, 'send()'
END
IF @Return = 0
BEGIN
EXEC @Return = sp_oamethod @Object, 'responseText',
@Lecture OUTPUT
IF @Return <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
END
IF @Return = 0
BEGIN
DECLARE @Output INT
EXEC @Return = sp_oamethod @Object, 'status', @Output
OUTPUT
IF @Output = 200
BEGIN
SET @Valid = 1
END
END
END
--destroy the object
EXEC sp_oadestroy @Object
==========================================================
Ca fonctionne en local (sur un même serveur) mais desque
les serveurs sont distants => le serveur distant SRV2 SQL
plante.
Merci
Partager