Newsgroup: it.comp.www.asp
Titolo: Come controllare se le connessioni al db sono chiuse ?

Salve a tutti.
Sto cercando di imparare gradualmente asp soprattutto cercando di
utilizzare gli script vari che si trovano in rete.
Mi sono però posto una questione:
Ho cercato di fare in modo di chiudere tutte le connessioni al db
inserendo il codice alla fine di ogni file, ma, almeno all'inizio,
potrebbe esserci il rischio di dimenticarsene qualcuna.
Usando il PWS esiste un modo per capire se ci sono delle connessioni
che rimangono aperte ?
Grazie in anticipo a tutti !!
M.
_________________________________
Visit the Nina Moric Tribute site
http://digilander.iol.it/mdc74/nina/nina.htm
_________________________________

 che rimangono aperte ?
Io ti consiglio di creare un include da inserire alla fine di tutte le
pagine che crei, cosi' da essere sicuro di non dimenticarti la
chiusura dei recordset e delle connessioni.
Io uso un include in questa forma:
If Not oConn Is Nothing Then
	oConn.Close
	Set oConn = Nothing
End If 
Buon Lavoro.
Antonio Volpon -- 
http://www.volpon.com

 End If
Questo codice non è corretto, perchè un oggetto può essere chiuso, ma
ugualmente istanziato.
Così forse è meglio:
On Error Resume Next    'così, se l'oggetto è già chiuso o già nothing, non
generi errori
If Not (oConn Is Nothing) OR IsObject(oConn) Then
    Set oConn = Nothing
End If
Il .close si può inserire, ma settando a Nothing l'oggetto, automaticamente
viene chiuso.
E poi, non tutti gli oggetti hanno un metodo per la chiusura. Ad ogni modo,
essendoci la gestione dell'errore, il ".close" di può anche mettere.

chiusura dei recordset e delle connessioni.
Su questo ci sono, in genere faccio così, ma può comunque può capitare
anche di inserire un include. Lo si prova su PWS e tutto sembra andare
bene e poi dopo un po' ci si accorge che in produzione il sito
rallenta terribilmente ...
Per questo chiedevo se esiste un modo per monitorare le connessioni ed
accorgersi di quelle che vengono lasciate aperte.
Tra l'altro, se io per esempio ho all'interno dello stesso tipo, che
so, un db prodotti e un db dove inserisco i msg di un guestbook. Mi
conviene tenerli su un unico db con tabelle diverse o è meglio avere
due db distribuendo il carico ? In questo caso avrei due connessioni e
dovrei ricordarmi di chiuderle entrambe ...
Sarebbe più comodo qualcosa che controlla se sono aperte o chiuse, no
?
Grazie,


potrebbe esserci il rischio di dimenticarsene qualcuna.
l'obbligatorietà della dichiarazione delle variabili dovrebbe servire
anche in casi come questo.
per rendere obbligatoria la dichiarazione delle variabili, come prima
riga di codice dei tuoi script scrivi:
<% option explicit %>
se sei obbligato a dichiarare in anticipo tutte le variabili, è molto
più difficile che poi te le possa "dimenticare".
per le connessioni, in particolare, te ne serve al massimo una per
ogni db diversoi che vuoi interrogare.
io personalmente quando dichiaro variabili uso una specie di
gerarchia:
connessione
variabile di appoggio per stringhe sql
recordset
eventuali oggetti
altre variabili
e le scrivo una per riga, cioè:
dim cn
dim rst
e non 
dim cn, rst
in questo modo quando arrivo alla fine della routine è facile vedere
quali sono gli oggetti da chiudere.
-- 
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport

 essendoci la gestione dell'errore, il ".close" di può anche mettere.
Mi spiace, ma hai sbagliato tu.
Pima di tutto sto parlando di connessioni, quindi e' legittimo usare
il close.
Non solo: la chiusura va fatta esplicitamente per tutti gli oggetti
che la prevedono. Se fai semplicemente il nothing, non c'e' garanzia
che l'oggetto venga rilasciato (per questo controlla il knowledge base
della Microsoft).
Se lascio gestire il rilascio delle connessioni a quel include, non
c'e' bisogno di inserire nessun altro codice.