Hej, jag har har lite problem. Jag använder MySQL tillsammans med c# och problemet är att mina anslutningar verkar inte försvinna. 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. 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. 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). Är det samma sak som det som i PHP kallas "persistent connections"? <b>Är det samma sak som det som i PHP kallas "persistent connections"?</b> Får jag fråga vad som är av ondo med connection pooling så att man vill stänga av det? Patrik : Per, det var ju en bra anledning i det fallet.Anslutningen dör inte.
Jag har en funktion där jag kör
objConn.Close();
objConn.Dispose();
Men ändå finns dom kvar när jag kollar över processlistan.Sv: Anslutningen dör inte.
Sv:Anslutningen dör inte.
Sv: Anslutningen dör inte.
Sv:Anslutningen dör inte.
http://se.php.net/manual/en/features.persistent-connections.phpSv: Anslutningen dör inte.
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.Sv:Anslutningen dör inte.
Sv: Anslutningen dör inte.
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.Sv:Anslutningen dör inte.
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