J'ai une application qui cause beaucoup de maux de tête. C'est une application .NET qui se connecte à SQL Server 2005 via un service Web. Le programme a une grille qui est remplie par une procédure stockée qui s'exécute depuis longtemps et qui est susceptible d'expirer. Dans le cas où il expire et qu'une exception SqlException est levée, il n'y a pas de gestion d'exécution pour fermer la connexion.Quelles sont les conséquences de ne pas fermer la connexion à la base de données après une erreur?
Quelles sont les conséquences réelles de cette situation? Je pense que le framework ou SQL Server s'en charge probablement d'une façon ou d'une autre mais je ne suis pas sûr.
Ajout Le programme fonctionne toujours bien le matin, mais après environ une heure d'utilisation, il ne fonctionne pratiquement plus. Le problème n'est pas que je ne sais pas comment coder la connexion correctement. J'ai besoin de savoir si ces symptômes pourraient être traités par les connexions non fermées. C'est un gros problème de changer le code de production et je voudrais savoir qu'il est au moins possible que cela soit le problème.
Conclusion J'ai généré cette défaillance sur des centaines de connexions simultanées. Je n'ai jamais pu reproduire la condition d'échec dans l'environnement d'application. Les meilleures pratiques marquées répondent comme correctes. Merci tout le monde.
Je pense que l'étiquette aurait dû être sql-server et non deux étiquettes distinctes que les questions affichées –
noté. Je vous remercie. –
Il semble que le regroupement de connexions soit activé dans votre environnement de production. Avec la mise en commun, les connexions ne sont pas fermées même si vous leur dites de fermer, donc peu importe que vous ne les fermiez pas. – MusiGenesis