Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как просмотреть соделжимое пула коннекта  [new]
LASMON
Member

Откуда:
Сообщений: 54
Возможно ли просмотреть содержимое пула коннекта с БД на MS SQL Server и как это сделать?
17 май 11, 18:25    [10667088]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Начните с таблицы master.dbo.sysprocesses.
17 май 11, 18:28    [10667103]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
LASMON
Member

Откуда:
Сообщений: 54
Табличка не помогла. У меня следующая ситуация. Разбираю модуль написанный не мной, там очень много всего наворочено. Так вот эта ерунда в каком-то месте забивает пул, не могу найти, где конкретно. Поэтому ищу способы отследить тот момент, когда происходит переполнение, в надежде, что это поможет найти нужный кусок кода, который нужно подправить.
17 май 11, 18:52    [10667212]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
LASMON
Табличка не помогла. У меня следующая ситуация. Разбираю модуль написанный не мной, там очень много всего наворочено. Так вот эта ерунда в каком-то месте забивает пул, не могу найти, где конкретно. Поэтому ищу способы отследить тот момент, когда происходит переполнение, в надежде, что это поможет найти нужный кусок кода, который нужно подправить.
Смотрите профайлером, сразу поймаете.

Наверняка кто-то Close забыл поставить, типичная ошибка для дот-нет программ. У программиста работает, а в продакшене нет.
17 май 11, 18:55    [10667239]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
LASMON
Member

Откуда:
Сообщений: 54
в профайлере почти после каждой строки вызов sp_reset_connection, которая, как я понимаю, возвращает открытый коннект в пул. Подозрительно выглядят только те строки, где несколько хранимок выполняются подряд (без sp_reset_connection между ними). Это значит, что несколько коннектов не были закрыты (не вызван Close в коде)?
17 май 11, 19:02    [10667284]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
LASMON
Подозрительно выглядят только те строки, где несколько хранимок выполняются подряд (без sp_reset_connection между ними). Это значит, что несколько коннектов не были закрыты (не вызван Close в коде)?
Нет, это нормально.

LASMON
в профайлере почти после каждой строки вызов sp_reset_connection, которая, как я понимаю, возвращает открытый коннект в пул.
Очевидно, нужно обратить внимание на вызовы, после которых нету вызовов для того-же spid в течении длительного времени (допустим, 10 секунд и более). Вот эти вызовы делаются из кода с ошибкой.
17 май 11, 19:32    [10667433]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
iljy
Member

Откуда:
Сообщений: 8711
LASMON,

BOL
The sp_reset_connection stored procedure is used by SQL Server to support remote stored procedure calls in a transaction. This stored procedure also causes Audit Login and Audit Logout events to fire when a connection is reused from a connection pool.

Процедура вызывается, когда соединение повторно выбирается из пула.
Что в вашем понимании означает фраза "забивают пул"?
17 май 11, 19:37    [10667459]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iljy
Что в вашем понимании означает фраза "забивают пул"?
Видимо, количество соединений достигла максимума указанного в ConnectionString и валятся таймауты.

Картинка с другого сайта.
17 май 11, 21:05    [10667744]     Ответить | Цитировать Сообщить модератору
 Re: Как просмотреть соделжимое пула коннекта  [new]
LASMON
Member

Откуда:
Сообщений: 54
Действительно были три незакрытых коннекта, что забивало пул, т.е. были в итоге открыты все коннекты из пула и далее валились таймауты :)

Спасибо за помощь!
20 май 11, 12:20    [10683453]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить