Istnieje kilka dobrych linki do pula połączeń monitoringu. Wykonaj wyszukiwanie w Google dla "monitorowania puli połączeń .net".
Jeden artykuł, do którego odniosłem się po jakimś czasie, to Bill Vaughn's article (Uwaga: jest stary, ale nadal zawiera przydatne informacje). Ma trochę informacji o monitorowaniu pul połączeń, ale także wgląd w to, gdzie mogą występować wycieki.
Do monitorowania, sugeruje;
„Monitorowanie puli połączeń
Ok, więc otworzył połączenie i zamknął je i chcą wiedzieć, czy połączenie jest nadal w miejscu-marnieje w puli połączeń na materacu powietrza. Dobrze ., istnieje kilka sposobów, aby określić, ile połączenia są nadal w miejscu (nadal podłączony) i nawet co robią omówię kilka z nich tu i w mojej książce:
· Wykorzystanie SQL Profiler z SQLProfiler TSQL_Replay Szablon śledzenia. Dla tych, którzy znają Profiler, jest to łatwiejsze niż odpytywanie przy użyciu SP_WHO.
· Uruchom SP_WHO lub SP_WHO2, które zwracają informacje z tabeli sysprocesses dla wszystkich działających procesów pokazujących aktualny stan każdego procesu. Zasadniczo istnieje jeden proces serwera SPID na połączenie . Jeśli nazwałeś swoje połączenie, używając argumentu Nazwa aplikacji w łańcuchu połączenia, będzie to łatwe do znalezienia.
Skorzystaj z Monitora wydajności (PerfMon), aby monitorować pule i połączenia. Omówię to szczegółowo w następnej kolejności.
· Monitoruj liczniki wydajności w kodzie. Ta opcja umożliwia wyświetlenie lub po prostu monitorowanie kondycji puli połączeń i liczby nawiązanych połączeń. Omówię to w następnej sekcji tego artykułu."
Edit:
Jak zawsze, sprawdzić niektóre z other similar posts tutaj na SO
Druga Edycja:
Po potwierdzeniu, że połączenia nie są będąc odzyskiwany przez pulę, inną rzeczą, którą możesz spróbować, jest wykorzystanie zdarzenia StateChange w celu potwierdzenia, kiedy połączenia są otwierane i zamykane. Zmiany stanu na otwarte, a nie zamknięte, oznaczałoby to, że gdzieś są przecieki. Można również zarejestrować dane w zdarzeniu o stanie statystycznym wraz z sygnaturą czasową, a jeśli masz inne rejestrowanie aplikacji, możesz zacząć analizować pliki dziennika dla instancji, w których pojawiają się zmiany stanu zamkniętych na otwarte, z nie odpowiada otwarte na zamknięte. Zobacz this link, aby uzyskać więcej informacji na temat obsługi StateChangedEvent.
Czy to możliwe, że masz więcej użytkowników niż połączeń w puli? –
Czy przechowujesz odniesienia do połączenia w stanie sesji lub w innym miejscu, które ma okres ważności przekraczający jedno żądanie http? – Jan
Nie, są otwarte i (przypuszczalnie) zamknięte na każde żądanie. – Jesse