Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Timeout della connessione

    Salve ragazzi,
    ho una pagina in asp che si connette a un database usando questa stringa di connessione nel file Global.asa:
    OggettoDB.Open "driver={MySQL ODBC 3.51 Driver};server=xxx;UID=xxx;PWD=xxx;database=xxx"

    Quando visualizzo la pagina che effettua delle query e mostra i risultati a video, non ho alcun problema.

    Se lascio la pagina inattiva per una ventina di secondi e ci riclicco, mi viene restitituo l'errore:
    500 - Internal server error.
    There is a problem with the resource you are looking for, and it cannot be displayed.

    Da cosa può dipendere?
    C'è da impostare qualche timeout da qualche parte?

    La stessa pagina ospitata su un altro provider non dà errore.

    grazie mille

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Dubito con tempi cosi brevi, prova a chiedere al provider.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Chiederò.
    In pratica se faccio una pagina così fatta:

    <%
    sql = "SELECT * from fam"
    set rsFam = OggettoDB.execute(sql)
    %>

    <%do while not rsFam.eof%>

    &Nome=<%=rsFam("Nome")%>"><%=rsFam("Nome")%>


    <%rsFam.movenext
    loop
    rsFam.close
    %>

    Viene visualizzata correttamente.
    Dopo meno di un minuto però ho un Internal Server Error.

  4. #4
    Ah! scusate dimenticavo...
    Credo che il problema sia legato anche alle sessioni del browser perché per rivedere correttamente quella pagina o un'altra del sito devo chiudere e riaprire il browser.
    Altrimenti anche visualizzando altre pagine ho sempre lo stesso errore.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma... sicuro di non aver preso qualche virus
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    hai attiva la visualizzazione degli errori sul browser?
    dice nulla?

    quanti dati estrai?

    ...ma le connessioni al db, una volta sfruttate, le chiudi?

  7. #7
    Allora ho fatto attivare dal provider l'opzione per vedere il dettaglio degli errori.
    L'errore è:
    Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    [MySQL][ODBC 5.1 Driver][mysqld-5.5.13-enterprise-commercial-advanced-log]MySQL server has gone away

    E la linea incriminata è quella dove c'è scritto:
    set rsFam = OggettoDB.execute(sql)

    Il mio file global.asa è:
    <OBJECT RUNAT=Server SCOPE=Session ID=OggettoDB PROGID="ADODB.Connection"></OBJECT>

    <SCRIPT LANGUAGE=VBScript RUNAT=Server>
    sub Session_OnStart
    OggettoDB.Open "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=xxx;o ption=3"
    Application.lock
    Application ("inlinea") = Application ("inlinea") + 1
    Application.unlock
    end sub
    sub Session_OnEnd
    Application.lock
    Application ("inlinea") = Application ("inlinea") - 1
    Application.unlock
    session("utente") = ""
    session("password") = ""
    OggettoDB.close
    end sub
    </SCRIPT>

    Se provo questa pagina:
    <html>
    <%
    Dim sConnection, objConn , objRS

    sConnection = "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=xxx;o ption=3"
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open(sConnection)

    Set objRS = objConn.Execute("SELECT * FROM pro")

    While Not objRS.EOF
    Response.Write objRS.Fields("Nome") & ", " & objRS.Fields("Id_pro") & "
    "
    objRS.MoveNext
    Wend

    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
    %>
    </html>


    Il problema non si verifica, quindi il problema è nel codice non nel server.
    Ma non capisco quale sia la differenza.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    446
    Ciao per l'errore che ti mostra, il problema è descritto in questa pagina :
    http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

    Quindi a meno di cattive configurazioni SUL SERVER di Mysql, il problema potrebbe risiedere nel fatto che chiudi la connessione al DB e poi effettui una query su quel DB senza riaprire la connessione.

    Ciau
    Veloce,Affidabile,Economico : Scegline 2

    Se la tua ragazza non te la da, tu non prendertela

  9. #9
    Il fatto è che presso l'altro provider il sito funziona.
    E su questo provider la pagina realizzata senza l'uso del file Global.asa funziona.
    In pratica le pagine del sito usano una connessione definita nel file Global.asa:
    <OBJECT RUNAT=Server SCOPE=Session ID=OggettoDB PROGID="ADODB.Connection"></OBJECT>
    <SCRIPT LANGUAGE=VBScript RUNAT=Server>
    sub Session_OnStart
    OggettoDB.Open "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=XXX;o ption=3"
    end sub
    </SCRIPT>

    Ho fatto due pagine di prova, la prima (come le pagine del sito) usa il file Global.asa, la seconda no. La prima presenta il problema, la seconda no.

    Prima pagina (con errore di timeout):
    <%
    sql = "SELECT * from fam"
    set rsFam = OggettoDB.execute(sql)
    do while not rsFam.eof
    Response.Write rsFam("Id_Fam") & " *2
    "
    rsFam.movenext
    loop
    rsFam.close
    %>

    Seconda pagina (funziona bene e viene ricaricata correttamente):
    <%
    Dim sConnection, objConn , objRS
    sConnection = "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=XXX;o ption=3"
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open(sConnection)
    Set objRS = objConn.Execute("SELECT * FROM pro")
    While Not objRS.EOF
    Response.Write objRS.Fields("Nome") & ", " & objRS.Fields("Id_pro") & "
    "
    objRS.MoveNext
    Wend
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
    %>

    Come mai l'uso del file Global.asa mi causa questo inconveniente?
    Ovviamente vorrei non dover cambiare tutte le pagine del sito per usare le connessioni come nel secondo esempio.


    cld

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Quello che fai nel global.asa non mi sembra corretto. Quando l'utente entra nel sito apri la connessione e la richiudi solo allo scadere della sessione e nel frattempo rimane aerta sperperando risorse.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.