Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.199 pregleda

Najnovija ↓

LogOFF sa SQL Servera 05.11.2005. u 18:24 · pre 255 meseci
izmenjeno 1 put, poslednji put veljkoz 05.11.2005. u 18:26
  1. veljkoz05.11.2005. u 18:26zapis iz teksta poruke
#1
Kada napravim neki upit koristeci neku konekciju, dobijem podatke preko DataReadera, zatvorim DataReader, zatvorim konekciju - i ... u listi aktivnih procesa na SQL Serveru i dalje stoji korisnik preko koga sam to uradio (vidi se sa exec sp_who). I tako stoji neodredjeno dugo. Vremenom, intenzivnim radom, procesi se gomilaju ...

Do sad sam radio preko sql komande "KILL spid" gde mi je spid prethodno identifikovani sp id korisnika, i to je radilo ok, ali daljim radom cesto dobijam gresku 11: "General Network Error", pa pretpostavljam da se to ne radi na taj nacin...

Da li mogu na neki nacin da se izlogujem sa servera bez ubijanja procesa?

Unapred hvala
Re: LogOFF sa SQL Servera 05.11.2005. u 22:02 · pre 255 meseci #2
Probaj da kad uradis close konekcije dispose-jes konekcijski objekat i ne samo taj nego sve objekte koji su koristili konekciju ili probaj da koristis using za deklaraciju.
Re: LogOFF sa SQL Servera 06.11.2005. u 23:42 · pre 255 meseci #3
Nisam bas shvatio kako si mislio sa "using"? U svakom slucaju, dispose ne radi. Evo i primer da ne bude da pisem u prazno:

Code:
SqlConnection con=new SqlConnection("server=.;uid=uljez;pwd=sifra;database=TestBaza");

SqlCommand comm=new SqlCommand("SELECT * FROM PrevodGreske",con);

con.Open();

SqlDataReader read=comm.ExecuteReader();

read.Read();

Console.WriteLine("Procit'o {0}",read["Srpski"]);

con.Close();
con.Dispose();


U sqlQueryAnalyzer-u (SQL Server 2000) (pokrenut sa drugim loginom) posle svake komande izvrsavam sp_who, i uljez se pojavi posle otvaranja konekcije - con.Open() - i to 2 puta(!). Posle zatvaranja konekcije i dispose-ovanja objekta ostaju ovi spid-ovi.

Stvarno vise nisam pametan :(
Re: LogOFF sa SQL Servera 07.11.2005. u 01:04 · pre 255 meseci #4
Lepo sam ja rekao da tu nesto ne valja cim se konekcija otvara dva puta...

Flashback: Zanimljivo ponasanje SqlConnection i SqlCommand

Ali sta, nisam uspeo da provalim...
Potpis
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
Re: LogOFF sa SQL Servera 07.11.2005. u 01:24 · pre 255 meseci #5
connection string:
"server=.;uid=uljez;pwd=sifra;database=TestBaza;pooling=false"

taj "pooling" vam pravi probleme, jer je postavljen na true po difoltu.

Ovo resava vas problem 100%
Potpis
Nije važno stići prvi. Važno je prvo da stigneš.
Re: LogOFF sa SQL Servera 07.11.2005. u 11:18 · pre 255 meseci #6
Obavezno zatvaraj i SqlDataReader posle citanja podataka
Potpis
Djankam se, kuzish.
Re: LogOFF sa SQL Servera 07.11.2005. u 16:31 · pre 255 meseci #7
Pa, izgleda da connection pooling pravi problem. Probao sam onaj kod gore i sve jedno je dal' dispozujes ili ne. Znaci uradi stavi pooling na false kao sto bunker rece.

Citat:
havramm: Lepo sam ja rekao da tu nesto ne valja cim se konekcija otvara dva puta...

Flashback: Zanimljivo ponasanje SqlConnection i SqlCommand

Ali sta, nisam uspeo da provalim...


Pa koliko sam uspeo da vidim ima veze sa connection pooling-om, bez pooling-a se otvara samo jedna konekcija. Ni meni nije jasno zbog cega, google-o sam i nista.
Re: LogOFF sa SQL Servera 07.11.2005. u 20:12 · pre 255 meseci #8
Jeste, tacno je to! Vise ne dobijam ni "General network error", i sve radi sjajno i bajno :)

Da li postoje neke posledice ukidanja pool-a? (Pretpostavljam da nije nista ozbiljno jer je conn timeout valjda 20sek...ali ipak da pitam)
Re: LogOFF sa SQL Servera 07.11.2005. u 22:06 · pre 255 meseci #9
Imas na netu opsirne informacije o connection pooling-u pa pogledaj.
Ukratko ako imas aplikaciju koja otvara mnogo istovremenih konekcija ili mnogo istovremenih usera-a, imaces neke slabije performanse prilikom otvaranje konekcije jer ce svaki put morati da se parsira connection string, uradi authentikacija od strane servera itd. a mislim i da preko connection pooling-a imas kontrolu nad resursima. Ukoliko postavis da ti je max broj otvorenih konekcija 10 i svih 10 neka su zauzete, tebi ce onda 11 zahtev za konekcijom ili biti odbijen ili biti vracena ukoliko se neka od aktivnih konekcija otpusti i tako ces ustvari, imati kontrolu nad resursima.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme