- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- ASP - global.asa e session
-
ASP - global.asa e session
Ciao ragazzi,
ho una pagina asp che si deve ricaricare continuamente;La connessione al db Sql Server 2000 avviane dalla pagina global.asa.
La connessione viene poi memorizzata in una variabile di sessione, che utilizzo in qualsiasi pagina che ho nel programma; ora la domanda è: visto che questa pagina si ricarica continuamente, ogni volta apre una nuova connessione!?!?Di seguito il codice del global.asa
Sub Session_OnStart
set cn = server.CreateObject("ADODB.Connection")
cnString = "DRIVER=SQL Server;SERVER=SERVER;UID=sa;PWD=;DATABASE=DATABASE;"
cn.Open cnString
'Memorizzo la connessione in una variabile si sessione, che riutilizzo in tutte le pagine
Set Session("Connessione") = cnend sub
sub Session_OnEnd
set Session("Connessione") = nothing
end sub
fatemi sapere
grazie
ciao
-
Prova ad aprire e chiudere la connessione negli eventi Application_OnStart/Stop invece che Session_OnStart/stop.
In ogni caso non mi sembra una buona pratica di programmazione, meglio aprire e chiudere subito le connessioni all'interno delle singole funzioni/metodi invece che gestire tutto con una sempre aperta...
Sub Application_OnStart set cn = server.CreateObject("ADODB.Connection") cnString = "DRIVER=SQL Server;SERVER=SERVER;UID=sa;PWD=;DATABASE=DATABASE;" cn.Open cnString 'Memorizzo la connessione in una variabile si sessione, che riutilizzo in tutte le pagine Set Session("Connessione") = cn end sub sub Application_OnEnd set Session("Connessione") = nothing end sub
-
Ok ci provo.
Potrebbe andare anche nel modo sotto, ovvero anzichè aprire la connessione direttamente nel global.asa mi memorizzo solo l'oggetto e la stringa di connessione !?!?
Sub Session_OnStart
Set cn = Server.CreateObject(?ADODB.Connection?)
cn.ConnectionString = " DRIVER=SQL Server;SERVER=SERVER;UID=sa;PWD=;DATABASE=DATABASE;"
Session(?Connessione?) = cn
End Sub
fammi sapere
grazie
ciao
-
@CIRMAS said:
Ok ci provo.
Potrebbe andare anche nel modo sotto, ovvero anzichè aprire la connessione direttamente nel global.asa mi memorizzo solo l'oggetto e la stringa di connessione !?!?Già và meglio ma comunque sempre nell'Evento Application_OnStart e NON Session_OnStart altrimenti ti crea un oggetto ("pesante" in termini di risorse anche se non lo apri) per ciascuna Sessione e non và bene.
-
@paocavo said:
Già và meglio ma comunque sempre nell'Evento Application_OnStart e NON Session_OnStart altrimenti ti crea un oggetto ("pesante" in termini di risorse anche se non lo apri) per ciascuna Sessione e non và bene.
Ma Application_OnStart non viene eseguita all'avvio del servizio sul server?
Andrebbe riavviato il servizio per rendere la modifica attiva e se una connessione va si chiude chiunque si collega avrà un errore.
O mi sbaglio?
-
Ciao Crimas,
sono nuovo di questo forum, mi sono iscritto per creare un post su una questione legale...
Tuttavia, nella vita, ho la fortuna/sfortuna di fare il programmatore, e quindi ho deciso di dare uno sguardo a questa sezione del forum...allora...
visto che questa pagina si ricarica continuamente, ogni volta apre una nuova connessione!?!?
No. La Session non parte ogni volta che si carica una pagina...