Bonjour
Aujourd'hui lors d'un process en production, j'ai rencontre un probleme que nous n'avions jamais eu auparavant.
Un web service est appele pour metter a jour certaines donnees dans une bdd.
voila un pseudo code:
c'est donc assez basique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 reader = execute(sp1) while (reader.read()) //get current row detail //create parameters execute(sp2, params) end while
Et donc voila le probleme, l'execution de sp2 (qui n'est rien d'autre qu'un simple update en SQL) a commence a renvoyer l'exception suivante:
Le probleme a ete reproduit systematiquement, pour la meme ligne de la table mise a jour, une bonne quinzaine de fois d'affile.System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
Apres avoir modifie le code vite fait pour "sauter" cette ligne, tout le reste de la table a ete mise a jour avec succes.
Ma question est la suivante:
Y'a-t-il quoique ce soit d'autre qu'un lock sur cette ligne qui pourrait causer ce probleme ?
Merci
Edit
Je precise un peu les environnements :
- SQL server 2008
- IIS 7
- Web service asp.net "classique" (pas WCF quoi)
- ADO.NET pour tout ce qui est connection/execution des commandes SQL
- .NET 4 pour le runtime
c'est a peu pres tout je crois
Ce message a peut-etre davantage sa place sur le forum SQL-server je ne sais pas...
Partager