Cosa succede quando NON si chiudono i recordset in asp classico?
-
05-07-2019 - |
Domanda
Nelle applicazioni legacy al lavoro, non vedo recordset chiusi sparsi su molte pagine.
- Quali conseguenze ha questo?
- La connessione si chiude automaticamente?
- Le risorse vengono rilasciate alla fine di ogni richiesta?
Aggiornamento:
TXN!
Soluzione
- Quali conseguenze ha questo?
Le risorse non vengono liberate così rapidamente e, a seconda del resto, le prestazioni del codice ne risentiranno.
- La connessione si chiude automaticamente?
- Le risorse vengono rilasciate alla fine di ogni richiesta?
Alla fine dell'esecuzione della pagina, tutte le connessioni vengono interrotte e tutte le risorse rilasciate. Alcuni ritengono che, dato che ciò accade, non è necessario preoccuparsi di chiudere esplicitamente le connessioni e / o di rilasciare risorse.
A parità di condizioni, fare affidamento su questo non è qualcosa di incoraggiato in quanto non si sa mai come andranno le cose nel traffico intenso - motivo per cui tutti i buoni tutorial / istruttori ti diranno di aprire solo quando ne hai bisogno, e rilasciare non appena hai finito.
Altri suggerimenti
Chiudi recordset non chiude la connessione
http://www.devguru.com/technologies/ado/QuickRef /recordset_close.html
Dovresti sempre chiudere le connessioni il prima possibile, per rilasciarle nuovamente nel pool di connessioni.
Un sistema che perde le connessioni rallenterà e gradualmente si arresterà.
Se non lo si chiude, si verificano perdite di memoria, che possono consumare rapidamente le risorse. IIS alla fine pulirà le risorse per te, ma non è molto affidabile. È più sicuro e più affidabile chiudere esplicitamente il recordset e quindi impostarlo su nulla per liberare risorse. Assicurati inoltre di chiudere la connessione e di impostarla su niente.