-
в классе делаем поле SqlConnection conn;
в одном из методов передаем его в другой класс:
Conn.Open();
Test_conn t = new Test_conn();
t.Test(conn);
...
public class Test_conn
}
при выходе из t.Test(conn); получаем еще один коннект. Что странно. Кто-ть может сказать что-нибудь по этому поводу?
Причем если test делаем в своем классе, то коннект один.
-
Сталкивались с таким моментом.
Закономерность появления второго коннекта так и не уловили.
Единственное, что выяснилось, если запретить пулинг коннектов, то их становится в точности столько, сколько должно быть по тексту.
-
мда. Эот все хитрый пул. Причем больше 2-х соединений не становится
-
А чем помешал второй коннект?
-
дело принципа. Понимать что происходит в системе
-
транзакции опять же по-другому делать надо
-
Здесь вряд-ли кто-нибудь даст четкий ответ.
Обратись к настоящим специалистам по .NET.
-
Хотя в другой ветке Вы восхощались гибкостью управления пулом соединений...
-
я могу и здесь повосхищаться. Пул это вещь. Если я чего-то не понимаю, это не значит что это плохо. Сам-то что сидишь здесь. Настоящие спецы живут в MS, надо думать? На RSDN толкового тоже ничего не сказали
-
Я просто хочу понять, стоит переходить на .NET, или подождать?
-
тебе для чего? Ты работаешь или учишься?
-
Работа программиста связана с постоянной учебой.
-
тогда что есть "переходить" как начальство скажет, так и будешь работать
-
Начальство скажет переходить или не переходить после того, как я дам начальству веские причины необходимости перевода системы из 1200 таблиц и 500 форм на .NET.
А тут все какими-то фенечками от .NET восторгаются.
-
вы хотите переписать но не знаете на что? Переписывать на незнакомую систему не надо в любом случае
-
> в классе делаем поле SqlConnection conn;
> в одном из методов передаем его в другой класс:
>
> Conn.Open();// - получаем коннект
> Test_conn t = new Test_conn();
> t.Test(conn);
> ...
> public class Test_conn
> {
> public void test(SqlConnection c)
> {
> if (c.State == ConnectionState.Closed)
> Console.WriteLine("***");
> }
> }
>
> при выходе из t.Test(conn); получаем еще один коннект. Что
> странно. Кто-ть может сказать что-нибудь по этому поводу?
>
> Причем если test делаем в своем классе, то коннект один.
>
Попробуйте указать Min Pool Size=0 прямо в connection string (оно 0 по умолчанию должно быть, но все-таки).
Вообще это выглядит как попытка добавить дополнительную connection в pool (так как вы используете одну, и она не в poole находится).
-
видимо сессия не возвращается в пул при вызове test, и система решает что надо еще сессию создать. Надо попробовать сессию в пул возвратить.
p.s.
Как-то дико с непривычки каждый раз conn.Close()/Open() давать :)
-
> видимо сессия не возвращается в пул при вызове test, и система
> решает что надо еще сессию создать. Надо попробовать сессию
> в пул возвратить.
Этого не должно случиться если min pool size = 0
Попробуйте явно задать в connection string и сообщите нам о результатах