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

ЭстЪ 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
13.12.2006, 17:30
    #34197547
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
Код: plaintext
1.
2.
 1 . Грузим стартовую страничку 
 2 . Грузим следующую страницу
...

Все это в одной сессии?
...
Рейтинг: 0 / 0
13.12.2006, 17:41
    #34197597
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
А вообще
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
13.12.2006, 19:25
    #34197929
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
Roman S. Golubin
Все это в одной сессии?

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

м.б. - уже были грабли
Вот тока проверить как? Другим провайдеров - дык он типа один. Альтернативных не встречал. Правда, если честно, то и не искал. Да и врядли 3rd-party весчи будут получше родного...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
14.12.2006, 09:08
    #34198607
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
Тут подсказывают, что для IIS надо отдельно включать поддержку пула коннектов, для этого в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters надо установить значение параметра StartConnectionPool в 1, после чего перегрузить IIS.
...
Рейтинг: 0 / 0
14.12.2006, 09:08
    #34198609
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
а в строке подключения какие параметры пула указываешь?
пробовал ограничить максимальное кол-во коннектов в пуле?
по-умолчанию =100
Шайтан
...
Рейтинг: 0 / 0
14.12.2006, 10:39
    #34198900
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
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
14.12.2006, 10:59
    #34198999
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
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
14.12.2006, 11:43
    #34199214
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
авторProvider=Sybase.ASEOLEDBProvider;
ADO.Net не включает в себя мкханизм организации пула соединений
организация пула как раз лежит на провайдере
вопросец: а Вы уверены,что этот провайдер "умеет делать пул"?
авторкак?
Код: plaintext
1.
2.
Min Pool Size =
Max Pool Size =
Connection Lifetime = 
обрати внимание на Connection Lifetime
это время в секундах, после которого коннекшен в пуле будет "убит",
если он не потребовался
по умолчанию 0 (т.е. коннекшены живут вечно) :)
Шайтан
...
Рейтинг: 0 / 0
14.12.2006, 12:15
    #34199366
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
Шайтан
ADO.Net не включает в себя мкханизм организации пула соединений
организация пула как раз лежит на провайдере
вопросец: а Вы уверены,что этот провайдер "умеет делать пул"?

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

"...имя, сестра, имя?.."
Где? В каком конфигурационном файле или помощью какой приблуды это можно посмотреть/порихтовать?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
14.12.2006, 12:22
    #34199402
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Connection Pooling - как оно, все-таки, работает
Код: 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
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Connection Pooling - как оно, все-таки, работает / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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