powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Connection Pooling - как оно, все-таки, работает
11 сообщений из 11, страница 1 из 1
Connection Pooling - как оно, все-таки, работает
    #34197227
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По мотивам и, как бы, в продолжение Немерянное кол-во процессов на сервере

ЭстЪ WWW-приложение. Общается он с БД посредством proxy-класса. В его методах все просто как арбуз:
Код: plaintext
1.
2.
3.
Connection.Open();
DoSmth();
Connection.Close();
разве, что тока DataAdapter (в тех методах, где он изается) сам рулит открытием/закрытием.
Это, типа, как говориться - прелюдия.
Теперь - людия.
1. Грузим стартовую страничку (login). Само собой - идет запрос к БД. Понятное дело - открывается connection, идет выборка, затем Connection.Close(); (в коде), но согласно (а так же всяким различным букварям и инету) физически соединение не разрывается, а помещается в Connection Pool. Смотрим на процессы: таки - да. ЭстЪ один процесс.
2. Грузим следующую страницу, 4 example, поиск контрагента. Снова лезем в БД. ConnectionString - абсолютна идентична (она прописана в Web.config'е). По идее д.б. испольсовано живое неразорванное соединение из Connection Pool. Смотрим процессы - фиг
Их там - уже два !!! Ладно - Бог с тобою, золотая рыбка...
3. Грузим из страницы поиска контрагентов уже контрагента. Смотрим процессы - их там - уже ТРИ !!!
No comment...

В задаче спрашивается: это оно таки действительно так криво работает или я чего-то недопонимаю?

P.S. Тест проводился на локальной машине локально. Примесь чужих/левых коннектов - исключена.
P.P.S. FW 1.1.
select @@version
Adaptive Server Enterprise/12.5.1/EBF 11428/P/NT (IX86)/OS 4.0/ase1251/1823/32-bit/OPT/Wed Sep 17 11:10:54 2003


с его родным Sybase.ASEOLEDBProvider'ом

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34197547
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
 1 . Грузим стартовую страничку 
 2 . Грузим следующую страницу
...

Все это в одной сессии?
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34197597
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще
BOLIf you are using the OleDbConnection, OdbcConnection, or OracleConnection class, connection pooling is handled automatically by the provider, so you do not need to manage it yourself.
Может это проблема провайдера ?
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34197929
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. Golubin
Все это в одной сессии?

Какая сессия имеется в виду?
Если IIS'ная - одна.
Если Sybase'вская - конечно нЭт.
Roman S. Golubin
Может это проблема провайдера ?

м.б. - уже были грабли
Вот тока проверить как? Другим провайдеров - дык он типа один. Альтернативных не встречал. Правда, если честно, то и не искал. Да и врядли 3rd-party весчи будут получше родного...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34198607
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут подсказывают, что для IIS надо отдельно включать поддержку пула коннектов, для этого в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters надо установить значение параметра StartConnectionPool в 1, после чего перегрузить IIS.
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34198609
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в строке подключения какие параметры пула указываешь?
пробовал ограничить максимальное кол-во коннектов в пуле?
по-умолчанию =100
Шайтан
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34198900
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. Golubin
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters

лично у меня на маше w2k+sp3 там ваще пусто, а на рапоте - уточню
Шайтан
а в строке подключения какие параметры пула указываешь?

никакие...
ConnectionString
<add key="ConnString" value="Provider=Sybase.ASEOLEDBProvider;Server Name=192.168.0.21;Server Port Address=5020;Initial Catalog=testdb;User ID=me;Password=" />

разве шо для отключения пула добавлял OLE DB Services=-4
Шайтан
пробовал ограничить максимальное кол-во коннектов в пуле?

как? да и зачем?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34198999
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. Golubin
значение параметра StartConnectionPool в 1

Данный параметр ассоциируется с доступом посредством ODBC. У нас же - OLE DB. Это типа все равно? Хотя...
http://aspbook.chat.ru/asp/16asp.html
StartConnectionPool: Включает для ASP пул подсоединения ODBC (не следует смешивать с пулом, обеспечиваемым MTS)

т.е. - разница, все же - имеется

Ну... И там же
http://aspbook.chat.ru/asp/16asp.html
0 - False,
1 - True (по умолчанию)

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34199214
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторProvider=Sybase.ASEOLEDBProvider;
ADO.Net не включает в себя мкханизм организации пула соединений
организация пула как раз лежит на провайдере
вопросец: а Вы уверены,что этот провайдер "умеет делать пул"?
авторкак?
Код: plaintext
1.
2.
Min Pool Size =
Max Pool Size =
Connection Lifetime = 
обрати внимание на Connection Lifetime
это время в секундах, после которого коннекшен в пуле будет "убит",
если он не потребовался
по умолчанию 0 (т.е. коннекшены живут вечно) :)
Шайтан
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34199366
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтан
ADO.Net не включает в себя мкханизм организации пула соединений
организация пула как раз лежит на провайдере
вопросец: а Вы уверены,что этот провайдер "умеет делать пул"?

чисто из практики: когда добавлял в ConnectionString OLE DB Services=-4 процессы схлопывались сразу (висячих - не было) - значит, типа, умеет. Но, если честно, документального подтверждения - не видел.
Шайтан
Min Pool Size =
Max Pool Size =
Connection Lifetime =

"...имя, сестра, имя?.."
Где? В каком конфигурационном файле или помощью какой приблуды это можно посмотреть/порихтовать?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Connection Pooling - как оно, все-таки, работает
    #34199402
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
	<connectionStrings>
		<add name="..." connectionString="Data Source=....;
Initial Catalog=...;
Integrated Security=SSPI;
Min Pool Size=5;
и т.д." 
providerName="System.Data.SqlClient"/>
Шайтан
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Connection Pooling - как оно, все-таки, работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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