• User Attivo

    Sicuramente va in timeout da codice...
    La procedura non è proprio semplicissima come esecuzione, fa anche uso di cursori e se i record sono centinaia di migliaia di sicuro non è veloce. Guarda il tempo che ci mette da query analyzer. Li la esegue perchè non esiste timeout. Può impiegarci anche 5 giorni.
    Le cose sono 2. O provi ad ottimizzarla (usa gli indici sui campi where) o la esegui solo da analyzer.
    Se il tempo di esecuzione non è esagerato puoi alzarlo un po via codice.

    server.scriptTimeout=n_secondi (in asp classic)
    Page.Server.ScriptTimeout = 60 (in vb.net)


  • User Attivo

    Non è il timeout ci mette 4 secondi ad eseguire entrambe le procedure...
    Il server però ha molte richieste al giorno, tieni conto che ci sono 150 utenti che lo usano costantemente e fanno decine di richieste al minuto, infatti pare proprio che quando le richieste aumentano vengono inseriti meno record nella tabella e viceversa quando le richieste diminuiscono vengono inseriti + record nella mia tabella.
    Che posso fare!?!?!?
    Come posso dire alla stored procedure "ESEGUI IL MIO CODICE FINO IN FONDO PRIMA DI USCIRE..." !?!?!?

    fammi sapere

    grazie
    ciao


  • User Attivo

    Forse è una questione di permessi

    Sul query analyzer ti logghi come sa? Prova a loggarti con lo stesso utente col quale ti connetti al database e vedi se ti esegue tutta la procedura


  • User Attivo

    Uso lo stesso utente da ambo le parti...
    Sembra quasi che mi serva un ROLLBACK o qualche cosa del genere... che ne dite!?!?

    grazie
    ciao


  • Moderatore

  • User Attivo

    A sto punto non saprei. E' un po difficile capire senza metterci le mani sopra.
    i sintomi sono quelli del timeout ma se mi dici che la stored è veloce non saprei.
    Magari è il webserver che è troppo lento a causa delle troppe connessioni


  • User Attivo

    Pensate ho provato il ROLLBACK e non inserisce nulla nella tabella
    Di seguito il codice che ho inserito come rollback

    
    --al'inizio della procedura ho messo
    BEGIN TRAN 
    
    
    --mentre alla fine della procedura ho messo
    IF (@@ERROR<>0) GOTO on_error
    
    COMMIT TRAN
    RETURN (1)
    
    on_error:
    ROLLBACK TRAN
    RETURN (-1)
    
    

    che dite dovrebbe essere giusto!?
    non so + che fare... qualche suggerimento!?!?!?!?!?!?!?!?

    grazie
    ciao


  • User Attivo

    Io sono convinto che non è un problema di database ma dipende sicuro da qualcosa che sta a monte...
    Se la stored funziona nell'analizyer allora il db non c'entra sicuro.


  • User Attivo

    Cosa mi consigli di guardare!?
    fammi sapere

    grazie
    ciao


  • User Attivo

    Crea una tabella di prova con 1 campo testo.
    Crea una nuova stored che accetti un parametro nvarchar in ingresso e che inserisca il valore nella nuova tabella creata.
    Chiama la stored passandogli il parametro e vedi se inserisce il valore.
    Comincia ad escludere almeno se c'è un problema di comunicazione con il database o se è quella stored a non rispondere.


  • User Attivo

    @FuSioNmAn said:

    Crea una tabella di prova con 1 campo testo.
    Crea una nuova stored che accetti un parametro nvarchar in ingresso e che inserisca il valore nella nuova tabella creata.
    Chiama la stored passandogli il parametro e vedi se inserisce il valore.
    Comincia ad escludere almeno se c'è un problema di comunicazione con il database o se è quella stored a non rispondere.

    Questo lo fa... anche perchè comunque ci sono centinaia di richieste al giorno... sembra che sia solo quando deve inserire un certo numero di dati in 2 tabelle diverse tramite un ciclo sql...
    Comunque abbiamo escluso che sia problema di comunicabilità, cos'altro posso fare!?
    confido in te, grazie
    ciao


  • User Attivo

    Incolla il codice asp della pagina che chiama la stored.
    Tutto il codice asp, non solo dove chiama la stored.


  • User Attivo

    @FuSioNmAn said:

    Incolla il codice asp della pagina che chiama la stored.
    Tutto il codice asp, non solo dove chiama la stored.

    Ecco il codice ASP che mi hai chiesto

    
    <%@ Language=VBScript %>
    <% Response.buffer = true %>
    <html>
    <!-- #INCLUDE FILE="Constants.asp" -->
    <head>
    <link rel="STYLESHEET" type="text/css" href="StyleSheets/styleStampa.css">
    <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no_cache">
    <meta HTTP-EQUIV="Pragma" CONTENT="no_cache">
    <meta HTTP-EQUIV="Expires" CONTENT="0">
    
    <script language="javascript" src="js/Utility.js"></script>
    
    </head>
    
    <body>
    
    <%
    
    dim conn
    dim rsImportViaggi
    dim rsImportOperatoriNoSuGiro
    
    Response.expires=0
    Response.CacheControl="private"
    
    Server.ScriptTimeout = 2000
    
    set conn = server.CreateObject("ADODB.Connection")
    conn.Open Session("Connessione")
    
    set rsImportViaggi = server.CreateObject ("ADODB.recordset")
    set rsImportViaggi = conn.Execute ("Sp_IMPORT_RM5_Viaggi_Rds")
    %>
    
    <br><br><br><br>
    <center>
    IMPORT VIAGGI R.D.S. NEL PORTALE<br>AVVENUTO CON SUCCESSO...
    </center>
    
    <%
    set rsImportOperatoriNoSuGiro = server.CreateObject ("ADODB.recordset")
    set rsImportOperatoriNoSuGiro = conn.Execute ("Sp_IMPORT_RM5_Operatore_No_Su_Giro")
    %>
    
    <br><br><br><br>
    <center>
    IMPORT OPERATORI NO SU GIRO NEL PORTALE<br>AVVENUTO CON SUCCESSO...
    </center>
    
    
    <%
    'Chiude rs e conn
    rsImportViaggi.close
    set rsImportViaggi = nothing
    
    rsImportOperatoriNoSuGiro.close
    set rsImportOperatoriNoSuGiro = nothing
    
    conn.Close
    set conn = nothing
    %>
    
    </body>
    </html>
    
    
    

    ciao, ciao


  • User Attivo

    Avanti ragazzi, ma proprio + nessuno mi sa aiutare...!?
    dai forza e coraggio a me è rimasto il problema inrisolto... non vorrete lasciare un povero ragazzo in alto mare!!

    AIUTO!!

    grazie
    ciao