|
[ADO.NET] Connection pooling. Непонятки какие то.
|
|||
---|---|---|---|
#18+
Имеем 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 к рассмотрению не принимаються :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2003, 15:15 |
|
[ADO.NET] Connection pooling. Непонятки какие то.
|
|||
---|---|---|---|
#18+
Я думаю, просто что-то не закрываете. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2003, 16:56 |
|
[ADO.NET] Connection pooling. Непонятки какие то.
|
|||
---|---|---|---|
#18+
Пуллинг - это как раз и есть незакрывание соединения в течении какого-то времени (обычно 1 минута) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2003, 15:31 |
|
[ADO.NET] Connection pooling. Непонятки какие то.
|
|||
---|---|---|---|
#18+
2Dankov Вы немножко путаете. 1 минута - это незакрытие оригинального коннекта на тот случай, если он подойдёт какому-нибуть виртуальному. А здесь ситуация другая. Объект коннекта создаётся, используется для одного вызова и уничтожается (т.е. уничтожается ссылка). Объект переходит сборщику мусора, а тот уже через какое-то время освобождает ресурсы. Если он освобождает их через минуту, то при всего 1000 вызовах/сек за минуту накопится 60000 коннектов к БД. Это много. Нужно просто делать conn.Close(), как и рекомендует M$ для освобождения такого рода ресурсов - коннектов к БД, файлов, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2003, 19:15 |
|
[ADO.NET] Connection pooling. Непонятки какие то.
|
|||
---|---|---|---|
#18+
Я ничего не путаю. После conn.Close() коннект переходит в пул на одну минуту и ждет открытия соединения еще кем-нибудь с той же строкой соединения. Если такое соединение открывается, коннект из пула передуется новому соединению. Если нет, то коннект в пуле закроется по истечении минуты. Все это время нахождения в пуле коннект остается открытым. Это поведение можно запретить, просто запретив пуллинг. Это достигается помещением в строку соединения параметра "Pooling=false". Если так задать, то conn.Close() действительно тут же будет закрывать коннект, а не перемещать его в пул. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2003, 12:39 |
|
|
start [/forum/topic.php?fid=17&msg=32226228&tid=1354335]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 373ms |
0 / 0 |