Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Прога открывает два соединения на SQL Server ??? / 6 сообщений из 6, страница 1 из 1
22.03.2004, 10:06
    #32450860
Олег К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
При запуске программы (VB.NET 2003) на SQL Server (2000) открывается два соединения.

Кто знает, подскажите - это так должно быть или это ошибка?
...
Рейтинг: 0 / 0
22.03.2004, 10:33
    #32450907
KostyaSPB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
Так и должно быть, в ВБ точно так же!
...
Рейтинг: 0 / 0
22.03.2004, 10:37
    #32450919
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
Если хочешь, чтобы только одно было, запрети "named pipes"
...
Рейтинг: 0 / 0
22.03.2004, 10:43
    #32450934
KostyaSPB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
После отключки намед пайпс могут быть проблемы с подключением у пользователей. Они конечно решаемы, но все-таки запара.
...
Рейтинг: 0 / 0
24.03.2004, 15:57
    #32455196
Олег К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
Разобрался я с этой ситуацией, а получается два соединения из-за автоматического создания SQLDataProvider, пула соединений. По умолчанию у него в строке подключения - poolling=true.
И вот что еще удалось узнать:
1. В SQLDataProvider, пул создается автоматически (вернее по умолчанию = True).
2. Пул очень хорош для использования, когда от имени одного компьютера и одного пользователя, много пользователей ходят на один сервер базы данных, это может быть актуально для Web-приложений, когда с одной странички сайта ломится на сервер "чумовое" количество пользователей, но для сервера баз данных скорее всего есть одна строка подключения для них всех, которая и организует пул скажем с максимумом 100 юзеров... и т.д.
3. Как работают пулы? Предположим в какой-то момент времени несколько пользователей установили соединение с базой данных и для них всех соединение было установлено в одном пуле. И если один из них "ушел", то его соединение еще некоторое время (указанный таймаут) не прерывается и это время находится в ожидании, на случай если какой-либо другой пользователь запросит соединение (по окончанию тайм аута и отсутствии нового запроса - соединение закрывается автоматически).
4. Такая ситуация должна сэкономить время на установку соединения и если с одним сайтом (Web-приложением) может работать очень большое количество пользователей и в определенный момент времени не известно их количество - организовывать пуллы соединений очень выгодно.
5. Новый пул может быть создан автоматически, в случае, если строка подключения отличается от строки уже созданного пула (даже если будет просто пробел в любом месте строки - создается новый пул). Исходя из этого виндовое приложение при работе в сети в любом случае с каждого компьютера - различная строка подключения, значит новый пул, т.е. не реально (по крайней мере в моем случае), чтобы с одного компьютера с одного приложения пыталось установить соединение несколько пользователей от имени одного пользователя. Вот и получается, что в большинстве случаев, для виндового приложения на один экземпляр приложения в сети достаточно одного соединения - выходит pooling=false предостаточно.
6. Кроме того, на сколько мне известно, для каждого пула соединений, SQL Server откушивает оперативной памяти (не уверен 2-4 Mb). Исходя из этого в виндовом приложении в некоторых случаях использование пулов - не оправданное расточительство памяти. Если учесть, что сеть может быть достаточно крупной, то математика простая...
7. Кроме того, лично я не вижу необходимости для одного экземпляра виндового приложения больше одного соединения в любой момент времени работы программы. Ну разве что, если это приложение не крутится на терминалсервере.
...
Рейтинг: 0 / 0
24.03.2004, 23:11
    #32455865
Олег К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прога открывает два соединения на SQL Server ???
Кому интересно о пулах и других прибамбасах .NET заглянте вот сюда -

http://mamba.aihs.net/kolegn/

СТАТЬЯ
"Руководство по архитектуре доступа к данным на платформе .NET"

Алекс Макмен (Alex Mackman), Крис Брукс (Chris Brooks), Стив Басби (Steve Busby), Эд Джезирски (Ed Jezierski)
Microsoft Corporation
Октябрь 2001 г.

НА русском языке.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Прога открывает два соединения на SQL Server ??? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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