Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Errore Timeout
martedì 21 aprile 2015 - 08.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
SQL Server 2008 R2
|
SQL Server 2005
|
SQL Server Express
Fantazma
Profilo
| Junior Member
95
messaggi | Data Invio:
mar 21 apr 2015 - 08:41
Salve a tutti.
Ho un'applicazione vb.net che si appoggia come basi dati su SQL server versione express. Le versioni del database su cui si manifestano i problemi sono sia la 2005 che la 2008. In pratica, saltuariamente e senza alcun apparente motivo (che deve esserci per forza...
) mi si presenta questo errore di timeout:
System.Data.SqlClient.SqlException: Timeout. Il tempo disponibile è scaduto prima del completamento dell'operazione o il server non risponde.
in System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
in System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
in System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
in System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
in System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
in System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean& marsCapable)
in System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean withFailover)
in System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject, Boolean withFailover)
in System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
in System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
in System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
in System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
in System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
in System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
in System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
in System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
in System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
in System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
in System.Data.SqlClient.SqlConnection.Open()
in System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
in System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
in System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
in System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
La cosa inquietante è che a volte questo errore si presenta anche sulla macchina che ospita il server SQL!!! Quindi comincio a pensare che o ho sbagliato qualcosa nella logica dell'applicazione oppure il server fa fatica a rispondere e si genera un timeout... voi cosa ne pensate?
Vi ringrazio e spero di non aver sbagliato a postare qui e non nella sezione del VB.NET!!!
A presto, Fabio
mmjc23
Profilo
| Newbie
47
messaggi | Data Invio:
mar 21 apr 2015 - 17:32
Provo a risponderTi io...(non sono di certo un esperto)
Sembrerebbe proprio un problema di Timeout.
Se esegui il comando SQL mediante la classe "SqlCommand", esiste la proprietà "CommandTimeout"
Di default è 30 secondi e, se impostata a "0", indica che non c'è nessun limite di timeout (ma si rischia che ti blocchi l'applicazione se il comando non viene terminato)
Buona serata
Fantazma
Profilo
| Junior Member
95
messaggi | Data Invio:
sab 25 apr 2015 - 18:56
Ciao, ti ringrazio per il suggerimento, ma avevo già provveduto a mettere a 45 secondi il timeout nella stringa di connessione... dovrei allungare ancora questo periodo?
mmjc23
Profilo
| Newbie
47
messaggi | Data Invio:
lun 27 apr 2015 - 08:08
Dipende da quanto tempo ci mette SQL a completare il comando/l'istruzione/la query che gli fai eseguire.
Se puoi, prova a far eseguire l'istruzione ad SQL (mediante, ad esempio, lo strumento "Management Studio" di SQL) e vedi quanto tempo ci mette per completare il comando.
Buona giornata
Ciao
Fantazma
Profilo
| Junior Member
95
messaggi | Data Invio:
ven 1 mag 2015 - 11:52
Ciao,
ti ringrazio per il consiglio e mi scuso per il ritardo nella risposta. Il fatto è che questo errore si presenta anche per semplici query di inserimento con 5 o 6 parametri o per query di update con 10 o 12 parametri... non si tratta di select molto complicate.
Può essere dovuto ad un sovraccarico del pc sul quale risiede SQL?
Grazie ancora per l'aiuto!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !