2010-04-28 24 views
1

La même chaîne de connexion utilisée sur deux serveurs physiques différents hébergeant différentes applications Web qui communiquent avec la même base de données établit-elle des connexions à partir du même pool de connexions? Ou les connexions groupées sont-elles confinées au niveau de l'application?Question de pool de connexion ASP.NET

Je demande parce que j'ai hérité d'une application web .NET 1.1 de 7 ans qui est criblée d'objets SQL en ligne, de connexion sql et de datareader non fermés et non-disposés. Récemment, j'ai été chargé d'écrire une petite application web qui est hébergée sur un autre serveur et qui parle à la même base de données et utilise donc la même chaîne de connexion à la base de données. J'ai créé un objet LINQ pour lire et écrire la table requise par l'application. L'application .NET 1.1 originale lance des exceptions comme

"Expiration du délai d'expiration du délai d'attente avant l'obtention d'une connexion du pool, car toutes les connexions groupées ont été utilisées et la taille maximale du pool a été atteinte "

Peut-être que ceux-ci ne sont pas propres, mais je voulais obtenir vos opinions pour s'assurer que je couvre toutes mes bases.

Merci!

Répondre

4

Il est impossible de regrouper les connexions entre deux machines distinctes. Votre serveur SQL aura cependant une limite de connexion pour les connexions totales.

Cette erreur est très probablement due au fait que l'application ne renvoie pas les connexions au pool de connexions. Cela peut arriver parce que la connexion n'est pas éliminée correctement. Cela peut se produire en raison d'un mauvais code (utilise-t-il un bloc using, ou un try catch?) Ou si l'utilisation d'un SQLDataReader peut entraîner l'ouverture de la connexion après l'exécution du code SQL.

0

Les pools de connexion sont conservés dans votre pool d'applications. Par conséquent, une machine distincte ne doit pas pouvoir être dérobée dans un pool d'applications distinct. Jetez un oeil here pour quelques informations sur le pool de connexion. Je vous recommande également de claquer les compteurs de performance sur bottom of this article pour voir ce qui s'y passe un peu plus.

Vous pouvez également vérifier le nombre maximal de connexions sur SQL Server. Dans Management Studio Faites un clic droit sur le nom du serveur -> Propriétés -> Connexions

regard pour "Le nombre maximum de connexions simultanées (0 = illimité)"