Avatar billede farouche Nybegynder
10. september 2001 - 14:52 Der er 7 kommentarer og
1 løsning

at lukke en connection til SQL server

Hej jeg sidder og roder lidt med at finde ud af hvordan jeg bedst rydder op efter mig når jeg sender SQL til min MS SQL server.

Jeg vil meget gerne lukke min connection til db\'en når jeg har udført det jeg skal.

Jeg gør følgende :

<%

dim conn

Set conn = CreateObject(\"ADODB.connection\")

conn.open connection-string


conn.close
set conn = nothing
%>


Dette burde efter min overbevisning åbne en connection og lukke den ned igen, men nej.

Ifølge performance monitor på MS SQL serveren åbnes der ganske rigtigt en connection, men den bliver ved med at køre...

Laver jeg det samme nummer fra en VB application virker det fint, med at åbne og lukke.

Gør jeg et eller andet galt, eller er der en hage ved det når man åbner SQL connections fra ASP

Er der en måde hvor jeg kan dræbe den connection ??


På forhånd tak
Avatar billede cyb Nybegynder
10. september 2001 - 15:07 #1
Hvis du benytter en ODBC connection skal du være opmærksom på at ODBC selv laver noget connection administration.
Avatar billede farouche Nybegynder
10. september 2001 - 15:20 #2
Det er en SQLOLEDB connection  :

\"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db;Data Source=Server;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=enid;User Id=pw;\"
Avatar billede cuddles Nybegynder
10. september 2001 - 15:53 #3
Lav en Server.CreateObject i stedet for \"normal\" CreateObject, da det giver serveren lidt bedre muligheder for at administrere ressourcerne.
Hvis du bruger recordsets, så husk at sætte dem til nothing til sidst i filen også.
Avatar billede farouche Nybegynder
10. september 2001 - 16:03 #4
tak, men det gør ingen forskel  :o(
Avatar billede tq Nybegynder
10. september 2001 - 20:39 #5
Såvidt jeg ved vil en ADODB.connection holde sig selv åben i ca 60 sekunder efter den er blevet lukket, hvilket er rimeligt smart for det meste da den i et travlt web miljø vil kunne \'genbruges\' adskillige gange.

Måske kunne du checke om SQL serveren faktisk lukker den, men efter en hvis periode?

TQ
Avatar billede tq Nybegynder
10. september 2001 - 21:01 #6
Yup, ADO vil altid (såvidt muligt) holde en connection (pooling) i 60 sekunder per default efter den er erklæret lukket i scriptet (den SKAL være erklæret lukket i scriptet for at ryge i pool\'en).

Pooling\'en kan kan konfigureres, læs denne her dokumentation:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmdac/html/pooling2.asp

Håber det hjælper
TQ
Avatar billede tq Nybegynder
10. september 2001 - 21:17 #7
P.S. En fin beskrivelse af fordelen ved pooling kan du finde her:

http://www.learnasp.com/learn/dbpooling.asp
Avatar billede farouche Nybegynder
11. september 2001 - 09:07 #8
Mange tak, det giver jo mening.

Forbindelsen uddøde ganske rigtigt efter ca. 60 sek.

Ved du om det er nødvendigt at frigive sit connection objekt før det giver effekt.
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