我们在Facebook上发布了一款使用SQL Azure的新游戏,我们正在获得间歇性的连接超时。
我之前处理过这个问题并实施了一个似乎处理瞬态连接问题的'重试'解决方案。
然而,现在游戏已经结束,我看到它再次发生。不经常,但它正在发生。当它发生时,我尝试登录到SQL Azure管理门户网站,我也得到了连接超时。与尝试SSMS相同。
查询本身是游戏中的第一个,它是一个包含4条记录的简单选择。
大约4分钟后,超时停止,一天或两天的一切都很好。
由于这些是全国各地的玩家,我没有与用户直接联系。
我正在寻找关于如何弄清楚发生了什么的任何建议。
谢谢, 添
答案 0 :(得分:3)
根据您在数据库前的计算量,我会对可以使用连接字符串创建的连接池进行限制。
尝试设置,例如,如果您在数据库前有2个计算。
最大泳池大小= 70;
SQL数据库只能处理180个连接,这是一个硬限制。例如,当您达到连接限制时,重试框架会使问题变得更糟,因为它会尝试连接一段时间导致进一步停机。这可能是您在计算重试框架放弃时看到几分钟的原因。
http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx
看看以下内容:
-- monitor connections SELECT e.connection_id, s.session_id, s.login_name, s.last_request_end_time, s.cpu_time FROM sys.dm_exec_sessions s INNER JOIN sys.dm_exec_connections e ON s.session_id = e.session_id GO
您应该尝试向应用程序设计添加缓存,这可以大大减少您在数据库上的应用程序,并建议使用SQL Azure。特别是因为你可以有连接问题。我以前见过这种类型的问题,这是连接限制,所以可能值得调查那个方向的一点时间,看看是否有原因。如果没有,我会打开MS支持的门票。
好吧,古德勒克。 编辑:高级数据库显然提高了连接的限制,所以值得调查,也可以快速解决这个问题,并可能是一个长期的问题。