Anslutningen dör inte.
Hej, jag har har lite problem. Jag använder MySQL tillsammans med c# och problemet är att mina anslutningar verkar inte försvinna.
Jag har en funktion där jag kör
objConn.Close();
objConn.Dispose();
Men ändå finns dom kvar när jag kollar över processlistan.
Svara
Sv: Anslutningen dör inte.
Vad menar du med att anslutningarna syns i processlistan? Är det programmet från vilket du ansluter till databasen som syns som en process även när det borde ha avslutats, eller är det databasservern mysqld som syns? Om det är den senare så skall den vara igång. Annars kan du inte använda databasen.
Svara
Sv:Anslutningen dör inte.
När man kör SHOW PROCESSLIST mot databasen så kommer alla anslutningarna upp och då är dom kvar även fast dom borde vara stängda.
Svara
Sv: Anslutningen dör inte.
Gissar lite eftersom MySql inte är en databas jag använt själv : Kan det vara så att du har connection pooling aktiverat (tror att det är det default för connections mot Microsoft SQL-Server och kanske är det likandant för MySQL)? Prova i sådana fall att lägga till ";Pooling=false" i connectionstringen (alternativt titta på www.connectionstrings.com för alternativa connectionsträngar).
Svara
Sv:Anslutningen dör inte.
Är det samma sak som det som i PHP kallas "persistent connections"?
http://se.php.net/manual/en/features.persistent-connections.php
Svara
Sv: Anslutningen dör inte.
<b>Är det samma sak som det som i PHP kallas "persistent connections"?</b>
Inte en blekaste, kan ingenting om PHP. Men utifrån den länken du skickade med så verkar det ju vara en liknande teknik ja.
Svara
Sv:Anslutningen dör inte.
Får jag fråga vad som är av ondo med connection pooling så att man vill stänga av det?
Svara
Sv: Anslutningen dör inte.
Patrik :
I t ex ett administratörsverktyg där man skapar och tar bort databaser. I mitt senaste specifika fall ett webbaserat tidregistreringssystem, där man lägger upp nya företag och även vill kunna ta bort företag. Varje företag blir en egen databas. Om adminverktyget har Connection Pooling aktiverat så kan man inte ta bort ett företag efter att en anslutning redan skapats mot databasen.
Då har man ju två alternativ, att döda anslutningen/arna med "KILL [SPID]" eller se till att connection poolingen inte är aktiverad. Personligen föredrar jag i det läget att stänga av connection poolingen då den inte gör någon större nytta i en applikation som körs några minuter per vecka. I detta fall tycker jag det är bättre att ha full kontroll på när anslutningar öppnas och stängs.
Svara
Sv:Anslutningen dör inte.
Per, det var ju en bra anledning i det fallet.
Vill bara tillägga en sak:
I scenariot webbapplikation med ett flertal samtidiga användare i ASP.NET - SQL Server bör man använda sig av connection pooling (Default på). Det ökar prestandan avsevärt. Det är ju ganska "dyrt" att upprätta nya databaskopplingar hela tiden. Men connection pooling undviker man overheaden.
Ola
Svara