Attendre connexion avant exécution requête.

Résolu/Fermé
alexmilano Messages postés 422 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 - Modifié par alexmilano le 17/11/2016 à 16:04
alexmilano Messages postés 422 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 - 2 déc. 2016 à 15:32
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 ...

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 23/11/2016 à 10:58
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
0
alexmilano Messages postés 422 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 27
2 déc. 2016 à 15:32
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


0