Buongiorno a tutti,
mi sono accorta che la mia pagina web di dettaglio dei miei prodotti mi da' saltuariamente errore di timeout su una query di aggiornamento del mio db. Saltuariamente nel senso che non me lo da' per tutti i prodotti... Questo e' il codice:
'Recupero il dato delle visualizzazioni precedenti e il codice ufficio
sql = "select NumVisualizzazioni, ufficio from faldone where codice=" & codice
Response.Write(sql & "<br>")
Dim gestdb As New DBgest
gestdb.sql = sql
Dim dati = gestdb.apridati()
dati.Read()
Dim visual = dati("NumVisualizzazioni")
Dim ufficio = dati("ufficio")
'Inizializzo a 0 se l'articolo è nuovo
If visual Is DBNull.Value Then visual = 0
visual = visual + 1
' Aggiorno il DB
sql = "update faldone set NumVisualizzazioni=" & visual & " where codice=" & codice
gestdb.sql = sql
Response.Write(sql)
gestdb.esegui() REM questa è la query che dà problemi
Nello specifico un esempio di due query:
select NumVisualizzazioni, ufficio from faldone where codice=293050
update faldone set NumVisualizzazioni=11 where codice=293050
La seconda e' quella che mi da' problemi; NumVisualizzazioni e' di tipo Integer
Il codice e' univoco, quindi sia la select che l'update operano su di un solo record.
Questo e' l'errore completo:
Riga 115: cmd.CommandType = CommandType.Text
Riga 116: cmd.Connection = cn
Riga 117: nraffected = cmd.ExecuteNonQuery()
Riga 118: Return nraffected
Riga 119: End Function
File di origine: G:\siti\sitonew\App_Code\Class1.vb Riga: 117
Analisi dello stack:
[SqlException (0x80131904): Timeout. Il tempo disponibile è scaduto prima del completamento dell'operazione o il server non risponde.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950522
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4856715
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1121
System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +192
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +317
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
DBgest.esegui() in G:\siti\sitonew\App_Code\Class1.vb:117
ricercascheda.incrementa_visualizzazioni() in G:\siti\sitonew\new\ricercascheda.aspx.vb:58
ricercascheda.Page_Load(Object sender, EventArgs e) in G:\siti\sitonew\new\ricercascheda.aspx.vb:313
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Non riesco proprio a capire perche' si verifichi questo problema e tanto meno perche' succeda solo in alcuni casi...
Grazie in anticipo