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

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

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

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

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

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


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