2009-10-21 5 views
4

Nous avons une application suspecte laissant une connexion ouverte. Je me demandais juste sur les outils de débogage pour cela, si quelqu'un a de bons outils pour isoler cela, commercial ou autre.Connexion non fermée - Mise au point du pool de connexions SQL Server

J'ai fait des recherches Google, mais je ne trouve que des articles qui décrivent le problème - pas les étapes d'une solution.

This est le meilleur article que j'ai vu jusqu'ici. - Les autres sont les bienvenus.

Quelqu'un at-il des produits qui isolent le code problématique? Profileurs qui effectuent ce genre de chose, ou tout autre conseil à ajouter?

+0

Ma réponse à cette autre question semble avoir aidé certaines personnes avec ceci: http://stackoverflow.com/questions/9004602/how-to-find-leaking-db-connection-pool-handle/15002420#15002420 – LOAS

Répondre

1

Vous pouvez toujours vérifier le Moniteur d'activité sur SQL Server pour voir si l'application maintient la connexion ouverte.

Sous le noeud Gestion dans SQL Server Management Studio. Il vous montrera l'hôte, l'application, l'utilisateur, le nombre de transactions ouvertes, etc. pour toutes les applications qui sont connectées à la base de données.

+0

Cela montrera les connexions ouvertes. Cependant, il ne lie pas vraiment à une base de code pour aider à isoler où cela se produit. Nous avons dû lancer l'application dans différentes zones pour essayer d'isoler une section particulière du code, tout en regardant le profileur. – Paul

+1

En fait, c'est dans le menu contextuel du serveur et dans la barre d'outils standard que sous le noeud Gestion. Au moins dans SQL Management Studio 2008 – abatishchev

0

Quelle langue utilisez-vous? Sous le pool de connexions BoneCP de Java (http://jolbox.com), il est possible de détecter exactement cela en surveillant le moment où un thread se termine et en imprimant une trace de pile de l'emplacement où la connexion a été ouverte mais pas fermée.

Vous pouvez probablement implémenter quelque chose de très similaire même si, bien sûr, cela ralentira les choses si vous avez l'intention de l'utiliser en production.

Questions connexes