powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / [ADO.NET] Connection pooling. Непонятки какие то.
5 сообщений из 5, страница 1 из 1
[ADO.NET] Connection pooling. Непонятки какие то.
    #32217119
mamba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем Web приложение.
Win2000, SQl Server2000+SP3, .NET Framework 1.0

В коде явно закрываю SqlDataReader, SqlConnection

тест 1.
1. В строке соединениея для ADO.NET Pooling=False
2. Гоняем прикладу переодически поглядывая в SQLServer на sp_who2
3. Соединения к базе данных открываються только на момент исполнения ТSQL комманд, то есть не закрытых соединений нет

тест 2.
1. В строке соединения Max Pool Size=200
2. Гонять прикладу приходиться достаточно долго,
в sp_who2 вижу постоянно увеличивающее количество соединений
3. В момент х получаю сообщение что maximum pool size is reached

Внимание вопрос:
Что бы это значило? Ощушение такое что соединение "не закрываеться" в режиме с пулингом.
Любые идеи, мысли приветствуються

П.С. Мысли типа переставь систему, используй .NET Framework 1.1, M$ Sucks к рассмотрению не принимаються :)
...
Рейтинг: 0 / 0
[ADO.NET] Connection pooling. Непонятки какие то.
    #32217279
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, просто что-то не закрываете.
...
Рейтинг: 0 / 0
[ADO.NET] Connection pooling. Непонятки какие то.
    #32218412
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пуллинг - это как раз и есть незакрывание соединения в течении какого-то времени (обычно 1 минута)
...
Рейтинг: 0 / 0
[ADO.NET] Connection pooling. Непонятки какие то.
    #32219917
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Dankov
Вы немножко путаете.
1 минута - это незакрытие оригинального коннекта на тот случай, если он подойдёт какому-нибуть виртуальному.

А здесь ситуация другая. Объект коннекта создаётся, используется для одного вызова и уничтожается (т.е. уничтожается ссылка).
Объект переходит сборщику мусора, а тот уже через какое-то время освобождает ресурсы. Если он освобождает их через минуту, то при всего 1000 вызовах/сек за минуту накопится 60000 коннектов к БД. Это много.

Нужно просто делать conn.Close(), как и рекомендует M$ для освобождения такого рода ресурсов - коннектов к БД, файлов, и т.д.
...
Рейтинг: 0 / 0
[ADO.NET] Connection pooling. Непонятки какие то.
    #32226228
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ничего не путаю. После conn.Close() коннект переходит в пул на одну минуту и ждет открытия соединения еще кем-нибудь с той же строкой соединения. Если такое соединение открывается, коннект из пула передуется новому соединению. Если нет, то коннект в пуле закроется по истечении минуты. Все это время нахождения в пуле коннект остается открытым.
Это поведение можно запретить, просто запретив пуллинг. Это достигается помещением в строку соединения параметра "Pooling=false". Если так задать, то conn.Close() действительно тут же будет закрывать коннект, а не перемещать его в пул.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / [ADO.NET] Connection pooling. Непонятки какие то.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]