у нас возникают проблемы с пулом соединений с Nhibernate в веб-приложении MVC3, которое работает с SQL Express и обрабатывает несколько одновременных запросов на основе AJAX.
Время от времени (в промежутках между часами) мы видим начинающиеся ошибки, которые показывают:
NHibernate.Util.ADOExceptionReporter
Тайм-аут истек. Время ожидания истекло до получения соединения из пула. Это могло произойти из-за того, что все пул соединений использовался и был достигнут максимальный размер пула.
тогда нагрузка
При подготовке выберите TOP (@ p0)
....
произошла ошибка
Мы должны перезапустить пул приложений IIS, чтобы после этого не возникало 500 ошибок.
Глядя на SQL Server, мы видим:
select * from sys.dm_exec_sessions
... дает около 30 сеансов с идентификаторами выше 51 (т.е. пользовательских сеансов)
select * from sys.dm_exec_connections
... дает примерно столько же
НО
select @@connections
... дает результаты с 79022
Указывает ли это на то, что соединения никогда не разрываются?
Сессии Nhibernate предназначены для времени жизни запроса.
Кто-нибудь испытывает что-либо подобное или может указать нам правильное направление?
Большое спасибо
Richard