• User Attivo

    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") = cn

    end sub

    sub Session_OnEnd
    set Session("Connessione") = nothing
    end sub


    fatemi sapere

    grazie
    ciao


  • Moderatore

    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
    
    
    

  • User Attivo

    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

    :ciauz:


  • Moderatore

    @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.

    :ciauz:


  • User Newbie

    @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.
    :ciauz:

    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?


  • User Newbie

    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...