Dans mon application win - je souhaite afficher une information (ou une icône db) si le serveur de base de données n'est pas joignable. Mais je ne veux pas attendre le délai de 30sec. L'utilisateur peut configurer le serveur, l'utilisateur, pw dans ma boîte de dialogue d'options. Donc, y at-il un moyen subsonique de vérifier très rapidement si une connexion db fonctionne?Comment vérifier la connexion à la base de données rapidement?
Répondre
Dans la version actuelle (521) il y a un isOnline() vous peut utiliser avec le modèle de référentiel. Il renvoie actuellement toujours vrai (voir here) ... mais une fois que c'est corrigé, vous pouvez utiliser la méthode surchargée qui passe dans une chaîne de connexion avec un délai d'attente court.
Vous pouvez trouver quelques informations sur le protocole et simplement émuler cela en utilisant les sockets TCP. Donc, c'est comme télésérer sur un serveur web et émettre des commandes HTTP. Cependant, vous feriez des commandes appropriées pour votre type de base de données. En faisant cela, vous pouvez éviter tout dépassement de temps dans le pilote ou quoi que ce soit. Alternativement, vous pouvez simplement vous connecter à l'IP: Port en utilisant TCP et voir si quelqu'un écoute. En ce qui concerne Subsonic, non.
Pouvez-vous définir le délai d'attente de connexion faible - see here for an exmaple, ou peut-être le faire sur un fil d'arrière-plan, et laisser l'utilisateur sache qu'il est en cours d'essai.
Vous pouvez créer une procédure simple de ping stockée puis exécutez que, avec un délai d'attente bas sur la commande SQL, quelque chose comme: méthode
SubSonic.StoredProcedure sp = SPs.PingStoredProcedure();
sp.CommandTimeout = 2;
sp.Execute();
- 1. Aide à la connexion à la base de données
- 2. Ouvrir Connexion à la base de données, Comment vérifier si elle existe toujours?
- 3. comment vérifier la structure de la base de données interne
- 4. besoin d'aide avec la connexion à la base de données
- 5. Php - Connexion à la base de données distante très lente
- 6. Connexion de la base de données à partir de l'applet
- 7. Connexion à la base de données pooling et connection.close()
- 8. Pool de connexion à la base de données JBoss
- 9. Assistant de connexion à la base de données SOAP UI
- 10. AIR: Connexion à la base de données via le réseau?
- 11. mod_rewrite, .htaccess connexion à la base de données mysql
- 12. Connexion manuelle à la base de données dans Asp.net MVC
- 13. CreateUserWizard - Comment vérifier les données par rapport à la base de données pendant l'exécution de l'assistant?
- 14. Comment vérifier la connexion au serveur
- 15. Dans nHibernate, comment puis-je changer dynamiquement la connexion à la base de données (DB différent)?
- 16. comment établir la connexion à la base de données en utilisant WPF, C# et XAML
- 17. Vérifier la connexion est active dans ASP.NET
- 18. Requête dynamiquement une base de données pour vérifier la valeur
- 19. VS2008 perd la connexion à la base de données après les mises à jour en ssms2008
- 20. visusal studio embedded crystal report persiste à demander la connexion à la base de données?
- 21. Comment vérifier la santé globale de la base de données en utilisant Toad?
- 22. Données de base: Comment vérifier la présence de plusieurs à plusieurs relation
- 23. Étendue de la connexion à la base de données de classe PHP Problème
- 24. La source de données SQL Server Reporting Services perd les identifiants de connexion à la base de données
- 25. Comment obtenir NLog à écrire à la base de données
- 26. ASP Classic Webapp - Connexion à une base de données SQL différente via la connexion
- 27. Format de chaîne d'URL pour la connexion à la base de données Oracle avec JDBC
- 28. java.sql.SQLException rencontré lors de la connexion à la base de données Oracle
- 29. Problème lors de la connexion à la base de données cloud
- 30. Meilleure façon de gérer la connexion à une base de données pour une servlet Java
Jusqu'à présent je simplement tiré un « TOP 1 » sélectionner à subsoniques pour un de mes tables et SQLException attrapé. Donc, j'ai eu l'information .. mais avec le délai de connexion de délai de connexion db ... – isepise
Ouais, si vous dites que vous obtenez toujours le délai d'attente; J'irais avec l'option de connexion de port. Ne vous embêtez pas à exécuter des commandes de protocole, juste voir si vous pouvez vous connecter. C'est juste moi. – BobbyShaftoe
Ma solution actuelle consiste à d'abord Ping le serveur (System.Net.NetworkInformation.Ping). Le résultat est Ok ou IPStatus.TimedOut ou PingException. Si le ping est correct, je vérifie le serveur DB lui-même avec une commande dbb commandtimetimeout db. – isepise