We have a set of 5 online auction systems running on Windows Azure and SQL Azure. Each system consists of one web worker and one or more web roles. Each system uses ASP.NET MVC 3 and Entity Framework, a repository pattern, and StructureMap.
The role of the worker is responsible for housekeeping and performs two groups of processes. One group starts every ten seconds, the other every second. In each process, a database query or stored procedure is likely to be executed. They are planned using Quartz.net.
The web role serves as a public interface and back office. Among the other basic functions of crud, both of them provide screens that, when opened, will repeatedly call controller methods that will lead to read-only requests from the stored procedure. The repetition rate is about 2-3 seconds per client. A typical use case will be 5 open office windows, as well as opening 25 windows for end users - all will hit the system again.
For a long time we encountered intermittent SQL timeout errors. Three of the most common are:
System.Data.SqlClient.SqlException: A transport-level error occurred while receiving results from the server. (provider: TCP provider, error: 0 - An existing connection was forcibly closed by the remote host.)
System.Data.SqlClient.SqlException: A transport-level error occurred while receiving results from the server. (provider: TCP provider, error: 0 - semaphore timeout period has expired.)
System.Data.SqlClient.SqlException: Timed out. The wait period expires before the operation is completed or the server is not responding.
The only predictable scenario is at an auction where a specific controller → sproc starts a timeout during the event (presumably due to the load). The rest of the time, the errors seem completely random and are included in singles, deuces and triples, etc. Even during periods of inactivity of the user. For example, the system will go for 18 hours without error, and then there may be 5-10 errors from different housekeeping methods, or perhaps the user logged in and looked at their account.
Additional Information:
/sprocs SQL Azure, SSMS, - Azure - , , , 1 . , SQL- - . J
Azure SQL Transient Fault - , http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/7a50985d-92c2-472f-9464-a6591efec4b3, , , " ", .
, asp.net .
1 SQL Azure, 5 , . 5 , , , , .
-, SQL Azure Azure.
, ? SQL Azure?... - , Microsoft , , - ?
.