|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Есть web-приложение на с# на каждой форме приходится делать коннекшн можно этого как-нибудь избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 06:05 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
чем это плохо? если делать один коннекшион на все формы, то быстро закончаться ресурсы сервера ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 06:20 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
поподробнее, мне кажется когда к SQL-серверу один коннекшн вместо трех, то это лучше для сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 13:56 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
да но к sql серверу то будут обращаться через web сервер, и если для 100 посетителей будут обращаться к одному коннекшену, то будет большая проблема совместного доступа ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 14:43 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Не вздумай так замутить, я раз попробовал. Пока один работаешь - нормально, но как несколько юзеров лезут за данными - караул (в смысле ошибка - поделить соединение не могут). Создавай по месту и не забивай голову ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 18:12 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
спасибо, ладно оставлю все как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 08:05 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
А если создавать одно соединение для каждого сеанса, нормально будет работать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 08:58 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Я сделал следующим образом: protected void Session_Start(Object sender, EventArgs e) { oConn = new OleDbConnection(strConnString); oConn.Open(); Session.Add("oConn", oConn); } А потом просто обращаюсь к соединению: OleDbCommand cmd = new OleDbCommand(); cmd.Connection = (OleDbConnection) Session["oConn"]; Здесь для каждого сеанса создается отдельное соединение, по этому я думаю каких-то конфликтов между пользователями не должно возникать. Если я не прав, поправте пожалуйста. Буду благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:08 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
вот тут тто у тебя память web сервера и будет тратиться впустую. если будет 100 посетителей, то будет в памяти сервера постоянно держаться 100 подключений. ресурсы сервера быстро кончаться. если будешь создавать соединение только тогда когда надо, то соединений будет меньше, память сервера будет расходоваться меньше. 100 посетителей - это цифра просто так :) может быть и 10000. потом, а что если у тебя после создания разорвется соединение? что ты с этой ошибкой делать будешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:29 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Правильно monstrU советует, во всех умных книжках так написано. Если на то нет особой необходимости, не держите соединение открытым больше, чем это требуется, тем более что в web между двумя обращениями может пройти довольно много времени, а если пользователь вообще покинет сайт, сессия может быть ещё долго открытой, пока её принудительно не закроет сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:41 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Спасибо, что грамотно разжували. Блин, теперь всю прогу придеться переделывать........:(( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:57 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
ну вот смотрите на page_load у меня открывается коннекшн, заполняются датаадаптеры после этого надо закрыть коннекшн или как-то надо отлавливать что со страницы ушли (но как это можно отлавить если перешли по гиперссылке) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 10:41 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
2 UU Ничего не надо - коннекшн сам пропадет при перегрузке страницы. Еще полезно делать - если MS SQL и много юзеров - пул коннектов. Тогда определенное количество коннектов все время остаются открыты и при создании нового соединения если в пуле есть свободные коннекты, то туда сразу соединение из страницы и идет вместо того, чтобы создавать новое соединение. Получается хорошая экономия ресурсов и времени ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 11:47 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
все таки надежнее закрывать после того как он перестал быть нужным ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 11:53 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
Он сам закрывается - после отработки codebehind все переменные аннулируются :) И можео о них не заботиться - .net теперь это делает сама. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 12:05 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
to tygra у меня почему-то три соединения остается висеть после того как я перестаю бегать по страничкам ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 12:21 |
|
коннекшн на каждой форме
|
|||
---|---|---|---|
#18+
ДатаСет заполняется через датаадаптер..испольуется метод Fill Код: plaintext 1. 2. 3. 4. 5.
ДатаАдапрет сам открывает соединение и сам закрывает . Разрабочику задумываться об этом не надо! А вот при работе с Datareader'ом, разработчику нужно управлять соединением самостоятельно.. [src] SqlConnection SqlCon = new SqlConnection (conString); SqlCommand cmd = new SqlCommand("usp_Select", SqlConn) SqlConn.Open(); SqlDataReader dr = cmd.ExequteReader(); while(dr.Read()) { //do something } SqlConn.Close(); [src] Коннекцию надо закрывать сразу же после исполнения команды. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 13:54 |
|
|
start [/forum/topic.php?fid=18&msg=32248900&tid=1396284]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 395ms |
0 / 0 |