Connection pool или постоянное подключение
Модератор: kdv
Connection pool или постоянное подключение
Доброго дня.
Подскажите знающие люди, проектируется клиент-сервер: FB 2 на Win; ADO.NET provider.
Интересует момент, что выбрать для клиента: connection pool, т.е. открыл коннект, старт транзакции, операция, заверш. транзакции, закрыли коннект.... или тоже самое через постоянное соединение + открытие новых подключений в паралельных потоках (1-3 одновременных).
Вижу след. минусы Connection pool:
1) есть ограничение на размер пула.
2) насколько грузовой этот пул для клиенской машины порядка P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
Static connection:
С постоянным коннектом я работал всегда, проблем не было! Но возможно я чего-то не знаю о пуле!
Подскажите знающие люди, проектируется клиент-сервер: FB 2 на Win; ADO.NET provider.
Интересует момент, что выбрать для клиента: connection pool, т.е. открыл коннект, старт транзакции, операция, заверш. транзакции, закрыли коннект.... или тоже самое через постоянное соединение + открытие новых подключений в паралельных потоках (1-3 одновременных).
Вижу след. минусы Connection pool:
1) есть ограничение на размер пула.
2) насколько грузовой этот пул для клиенской машины порядка P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
Static connection:
С постоянным коннектом я работал всегда, проблем не было! Но возможно я чего-то не знаю о пуле!
connection pool это как раз несколько постоянно открытых коннектов. а не открыл-закрыл.
если бы у тебя был только Firebird, то оно и 50 коннектов потянуло бы, обычных клиент-серверных. А IIS + ADO.Net на такой машинке будет худо.
но попробовать можно, чтобы было понятно, в какую сторону двигаться
какое? пул вообще то как раз для веб-приложений или трехзвенки и имеет смысл. 10 коннектов обычно обслуживают до 100 пользователей.1) есть ограничение на размер пула.
мда. и на эту тачку ты собрался водрузить - Firebird и IIS с ADO.Net ???P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
если бы у тебя был только Firebird, то оно и 50 коннектов потянуло бы, обычных клиент-серверных. А IIS + ADO.Net на такой машинке будет худо.
но попробовать можно, чтобы было понятно, в какую сторону двигаться
Так пока и решил (не гемороится с пулом). Если при интенсивных открытиях коннектов, попробую юзать пул.Linco писал(а):ИМХО зависит от задачи. В большинстве задач нет необходимости усложнять логику программированием пула. На открытие и закрытие коннекта уходит дополнительное процессорное время. В общем если такое поведение не диктуется специфической задачей/условиями, то необходимости нет.
Это мне ? Вроде я такого не опровергал!kdv писал(а):connection pool это как раз несколько постоянно открытых коннектов. а не открыл-закрыл.
В строке подключения: Pooling=False;MinPoolSize=0;MaxPoolSize=100kdv писал(а):какое?1) есть ограничение на размер пула.
не согласен. трехзвенка - однозначно, а также клиент-сервер, где клиент активно работает с БД через какой-то промежуток времени (не открыл, записал много, закрыл). Например работает с 5-10 потоков, которые юзают БД (пример, самописный шедулер, которого нет в ФБ). Вот последний вариант мой.kdv писал(а):пул вообще то как раз для веб-приложений или трехзвенки и имеет смысл. 10 коннектов обычно обслуживают до 100 пользователей.
Дима, в первом посте я указал "что выбрать для клиента"! О оснастке сервака речь не идет.kdv писал(а):мда. и на эту тачку ты собрался водрузить - Firebird и IIS с ADO.Net ???P2.0, 512 мозгов при, допустим, 10-20 открытых коннектах ?
если бы у тебя был только Firebird, то оно и 50 коннектов потянуло бы, обычных клиент-серверных. А IIS + ADO.Net на такой машинке будет худо.
но попробовать можно, чтобы было понятно, в какую сторону двигаться
ЗЫ: На такой (от фонаря придуманном конфиге клиента) даже IIS+.NET framework+.NET application будет бегать, а вот если добавить ФБ, то будет проблематичнее.
в исходном вопросе это было очень запутанно. про "клиента" проглядел, и, собственно, на клиенте пул коннектов никто никогда не делает.Это мне ? Вроде я такого не опровергал!
100 коннектов на пул - это дофига. если не делать чтобы запросы выполнялись по нескольку секунд, то 100 коннектов могут обслужить тысячи пользователей.
100 - это я привел пример, что по-дефолту подставляет АДО.провайдер.kdv писал(а):в исходном вопросе это было очень запутанно. про "клиента" проглядел, и, собственно, на клиенте пул коннектов никто никогда не делает.Это мне ? Вроде я такого не опровергал!
100 коннектов на пул - это дофига. если не делать чтобы запросы выполнялись по нескольку секунд, то 100 коннектов могут обслужить тысячи пользователей.
Ок, сенкс, общие понятия получил. Топик закрыт.