Avatar billede gyxi Nybegynder
10. februar 2009 - 13:48 Der er 7 kommentarer og
1 løsning

Suspended connection efter timeout

Jeg har en metode i min applikation som nogle gange henter utrolige mængder data som den henter ind i hukommelsen. Dette betyder at processen vokser til over det niveau som .NET kan håndtere, hvorfor processen bliver lukket i utide, mens der er ved at blive indlæst oplysninger.

Effekten af dette er, at der ligger en åben connection i min MS SQL Server med status "Suspended" som låser de data den var i færd med at arbejde med, indtil den bliver lukket manuelt i databasen.

På længeres sigt skal jeg selvfølgelig omkode min applikation, men indtil da vil jeg gerne høre nogle idéer til hvordan jeg kan forhindre at der ligger en Suspended process og låser i længere tid.
Avatar billede arne_v Ekspert
11. februar 2009 - 03:23 #1
Kan du ikke catche en exception og close connection pænt ?
Avatar billede gyxi Nybegynder
11. februar 2009 - 09:25 #2
Jeg lukker forbindelsen i finally og den når formentlig derned selvom processen lukkes af Windows, for den når i hvert fald at logge fejlen i min catch.

Men som sagt håber jeg på et databasebaseret eller opsætningsmæssigt workaround, da det, pga. bureaukrati, varer et par måneder før jeg kan rette fejlen i koden.
Avatar billede arne_v Ekspert
12. februar 2009 - 03:54 #3
Bruger den app mange nye connections ?

Hvis ikke: kan du ændre connection string så den ikke bruger connection pool og dermed at Close går igennem til databasen ?
Avatar billede gyxi Nybegynder
12. februar 2009 - 09:04 #4
Ret kreativt fundet på! Den bruger godt nok rigtig mange nye connections, men ville måske godt kunne leve med et lille nøk nedaf i performance, hvis ellers det ville løse problemet.

Hvor insisterende er sådan en "Close()"? Hvis en connection er Suspended el. lign. og der køres Close() bliver den så lukket med al vold og magt - er der garanti for den bliver lukket?
Avatar billede arne_v Ekspert
12. februar 2009 - 15:21 #5
Ingen anelse.

Men hvis SQLServer opdager at socket er closed, saa slaar den vel traaden ned.
Avatar billede gyxi Nybegynder
13. februar 2009 - 08:18 #6
Ok, jeg kommer nok ikke nærmere en løsning i dette spørgsmål, selvom jeg havde håbet på noget lidt mere konkret og sikkert.

Tak for hjælpen. Lægger du svar så vi kan lukke.
Avatar billede arne_v Ekspert
14. februar 2009 - 02:33 #7
En anden tilgangs vinkel er:

sp_who
kill nn

bagefter !

:-)
Avatar billede arne_v Ekspert
14. februar 2009 - 02:33 #8
Og et svar.
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
Computerworld tilbyder specialiserede kurser i database-management

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