Все соединения в пуле используются

У нас сейчас небольшая ситуация - кажется, что кто-то где-то забыл закрыть соединение в коде. В результате пул соединений относительно быстро истощается. В качестве временного патча мы добавили Максимальный размер пула = 500; в нашу строку подключения к веб-сервису и перезапустили пул, когда все подключения будут исчерпаны, пока не выясним это.

Пока что мы это сделали. :

SELECT SPId
FROM MASTER..SysProcesses
WHERE DBId = DB_ID('MyDb')  and last_batch < DATEADD(MINUTE, -15, GETDATE())

для получения SPID, которые не используются в течение 15 минут. Теперь мы пытаемся получить последний выполненный запрос с использованием этого SPID с помощью:

DBCC INPUTBUFFER(61)

но отображаемые запросы различны, что означает, что либо что-то на базовом уровне, связанное с манипуляциями с соединением, было нарушено, либо наш вывод ошибочен ...

Есть ли здесь ошибка в нашем мышлении? Дает ли DBCC / sysprocesses ожидаемые результаты или есть побочный эффект? (например, влияют соединения в пуле?)

(пожалуйста, придерживайтесь того, что мы могли бы узнать с помощью SQL, так как ребят, которые сделали код, много, и не все присутствуют прямо сейчас)

5
задан veljkoz 5 January 2011 в 12:50
поделиться