Attendre connexion avant exécution requête.
Résolu
alexmilano
Messages postés
445
Statut
Membre
-
alexmilano Messages postés 445 Statut Membre -
alexmilano Messages postés 445 Statut Membre -
Bien le bonjour,
J'aimerais savoir, si on a un moyen de vérifier que la connexion à un serveur distant est disponible avant de lancer une requête.
Je vous explique pourquoi ce questionnement.
J'ai un serveur un Paris, l'autre à Marseille.
Sur le serveur de Paris, toutes les nuits, une procédure se lance pour récupérer des données à Marseille.
Sauf que la connexion internet à Marseille coupe de temps en temps, et donc le transfert ne se lance pas.
Donc, je voudrais savoir si au début de ma procédure, je peux mettre un test genre :
IF connexion 221.220.0.76 = FALSE
BEGIN
WAIT 5 MINUTES
END
ELSE
BEGIN
MA PROCEDURE
END
Ou avec un While ...
Merci d'avance !! :)
Si problème tu as, alors solution il y a ...
J'aimerais savoir, si on a un moyen de vérifier que la connexion à un serveur distant est disponible avant de lancer une requête.
Je vous explique pourquoi ce questionnement.
J'ai un serveur un Paris, l'autre à Marseille.
Sur le serveur de Paris, toutes les nuits, une procédure se lance pour récupérer des données à Marseille.
Sauf que la connexion internet à Marseille coupe de temps en temps, et donc le transfert ne se lance pas.
Donc, je voudrais savoir si au début de ma procédure, je peux mettre un test genre :
IF connexion 221.220.0.76 = FALSE
BEGIN
WAIT 5 MINUTES
END
ELSE
BEGIN
MA PROCEDURE
END
Ou avec un While ...
Merci d'avance !! :)
Si problème tu as, alors solution il y a ...
2 réponses
-
Bonjour,
Tu te connectes en utilisant la fonctionnalité de "serveurs liés" ?
Si oui, essaie ceci :
https://docs.microsoft.com/en-us/archive/blogs/sqltips/test-linked-server-connection-settings
Bon, c'est pour une vieille version de SQL Server, mais ça vaut le coup de regarder.
Xavier -
Merci pour la réponse, au fait, j'ai trouvé une solution, avec le try catch !
L'idée, c'est de sélectionner une ligne sur le serveur lié. S'il y a une erreur, ça lance le waitfor, 10 minutes dans mon cas, puis ça retest après.
Donc ce que je voulais :)
START:
BEGIN TRY
SELECT TOP 1 Champ1 FROM [192.168.1.1].BDD.dbo.MaTable
END TRY
BEGIN CATCH
WAITFOR DELAY '00:10:00'
GOTO START
END CATCH