10. februar 2009 - 13:48Der 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.
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.
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?
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.