Avatar billede truelz Nybegynder
23. december 2008 - 08:31 Der er 6 kommentarer og
1 løsning

MySQL too many connections

Hej

Jeg er ved at skrive en web applikation hvor jeg benytter omkring 15 klasser (blandt andet web controls) der hver laver en connection til en mysql server.

Klasserne får ikke lukket connections, og lynhurtigt stiger antallet af connections til de 100 jeg har sat begrænsningen til. Jeg benytter .NET connector v/ 5.2.5.

Jeg har indsat en finalizer i hver af klasserne der lukker den pågældende connection, men der er jo ingen garanti for hvornår den bliver kørt, hvilket også i den grad kommer til udtryk.

Er der et eller andet trick man kan benytte sig af?
Avatar billede erikjacobsen Ekspert
23. december 2008 - 08:56 #1
Gammeldags håndværk? Åben forbindelsen lige før du skal bruge den, og luk den lige bagefter. Så bliver det altid gjort (fx try-catch-finally). Hvis dit framework ikke tilbyder en fornuftig connection-pooling, så laver du en selv (eller finder een, der har gjort det).
Avatar billede truelz Nybegynder
23. december 2008 - 09:14 #2
Og hvis jeg benytter en connection fra flere funktioner laver jeg en ny connection fra hver funktion. Det var dog noget bøvl :)
Men jo, .net connectoren understøtter pooling. Jeg vil lige gøre et forsøg.
Avatar billede truelz Nybegynder
23. december 2008 - 09:39 #3
Det er måden at gøre det på. Vil du lægge et svar?
Avatar billede erikjacobsen Ekspert
23. december 2008 - 11:36 #4
Jeg samler slet ikke på point, tak.
Avatar billede schwarz84 Nybegynder
23. december 2008 - 14:39 #5
Finalizere er i det hele taget rigtig dårlige at bruge. Det kan sætte hastigheden på garbage collection 50-100 gange ned hvis man bruger dem konsekvent på sine objekter!
Avatar billede montago Praktikant
25. december 2008 - 20:38 #6
hmm...

lav et såkaldt 'data' lag i strukturen... dvs. nogle klasser/objecter som er de eneste som snakker med databasen -- funktioner som udfører alt arbejdet og som lukker når de er færdige...

sørg for kun at lave statiske/shared metoder
Avatar billede truelz Nybegynder
12. januar 2010 - 22:17 #7
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester