Forum 

Forum AspNuke.it - Il tuo Portale OpenSource in ASP

response.end

Autore Messaggio
docdoc

Moderatore

Avanzato
Avanzato
174 Discussioni



Profilo - docdoc
10 febbraio 2006 alle 22:15:38 Profilo - docdocInvia un messaggio privato Rispondi quotando
Modificato il 10 febbraio 2006 alle 22:16:11

Salve, ho letto più volte che le connessioni al database aperte e non chiuse possono portare problemi.
Dal manuale ho imparato a mettere un nuovo database e implementare una pagina asp che ne legge i dati e li riproduce.
Il dubbio mi viene riguardo ad un response.end che metto in una condizione. Mi chiedo se con il response.end viene terminata bruscamente la pagina e non viene chiusa la connessione. Ad es.

<%
' istruzioni di connesione al database...
Dim oCn, oRs, rSQL, iLine
Set oCn = DBConnexion(DB_MIO)
rSQL = "SELECT * FROM miatabella"
Set oRs = DBRecordSet(oCn, rSQL)



if condizione = vera then
' riproduci i record
else
Response.end
end if

' chiudo e rilascio
oRs.close
Set oRs = Nothing
oCn.close
Set oCn = Nothing

%>


In questo caso, se la condizione è falsa e viene effettuato il response.end la connessione al DB è rimasta aperta?
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
11 febbraio 2006 alle 07:23:54 Profilo - emuInvia un messaggio privato Rispondi quotando
Esatto.
L'istruzione response.end provoca il temine dell'esecuzione, come se non ci fossero altre righe da eseguire, ed il rilascio della memoria allocata dalle variabili.
Ma la connessione, come tutto cio' che viene creato con l'istruzione set, non e' una variabile, ma un oggetto.
La fine del codice provoca il rilascio della variabile che punta all'oggetto (ossia ne contiene l'indirizzo di memoria), ma non necessariamente dell'oggetto stesso.
Per questo aspnuke ha una funzione ReleaseObjects, da usare sempe prima di una response.end (cerca nel codice di aspnuke per trovare degli esempi).
Ciao
---------------
development@aspnuke.it
emu

Moderatore

Esperto
Esperto
1714 Discussioni



Profilo - emu
11 febbraio 2006 alle 07:37:33 Profilo - emuInvia un messaggio privato Rispondi quotando
Per completezza, diro' che l'uso della funzione DBConnexion unita alla ReleaseObjects (eseguita nel clearitall-inc.asp, includetelo sempre nelle vostre pagine!), rende teoricamente inutile la singola chiusura delle connessioni, ma solo nell'attuale implementazione (prima invece bisognava ricordarsi di farlo sempre).
E' per questo che ora aspnuke non ha piu' i problemi con le connessioni che aveva una volta.
Tuttavia l'attuale implementazione potrebbe cambiare, poiche' non e' ottimizzata per db che consentano il "connection pooling", quindi ricordatevi comunque di chiudere SEMPRE le connessioni (e di assegnarle a nothing).
Ciao
---------------
development@aspnuke.it
docdoc

Moderatore

Avanzato
Avanzato
174 Discussioni



Profilo - docdoc
11 febbraio 2006 alle 10:50:21 Profilo - docdocInvia un messaggio privato Rispondi quotando
Perfettamente chiaro. Molte grazie, Emu.

Log in

Login
Password
Memorizza i tuoi dati:

Cerca

 

Sostieni AspNuke

Un piccolo gesto per aiutarci a mantenere AspNuke.it online

Promo

MusicWebItalia.it
Video Testi Traduzioni Spot Colonne sonore Accordi e Spartiti gratis.

Visitatori

Visitatori Correnti : 98
Membri : 0 offline Anna

Iscritti

 Utenti: 18940
Ultimo iscritto : glauco
Lista iscritti
Messaggi privati: 3373 Commenti: 2210 Immagini: 39 Downloads: 144 Articoli: 49 Pagine: 101 Siti web: 558 Notizie: 180 Sondaggi: 11 Preferiti: 5685294 Post sui forum: 51195 Libro degli ospiti: 4 Eventi: 7

Versioni

Temi