2013-05-09 40 views
2

我們在Facebook上發佈了一款使用SQL Azure的新遊戲,並且我們正在收到間歇性連接超時。SQL連接問題...下一步

我早些時候處理過這個問題,並實施了一個似乎處理了瞬態連接問題的'重試'解決方案。

但是,現在遊戲結束了,我看到它再次發生。並不常見,但它正在發生。發生這種情況時,我嘗試登錄到SQL Azure管理門戶網站,並且我也得到了連接超時。與嘗試SSMS一樣。

查詢本身是第一個遊戲,它是一個簡單的選擇與4記錄表。

大約4分鐘後,超時停止,一切都好一兩天。

由於這些是全國各地的玩家,我沒有直接接觸用戶。

我正在尋找任何建議,我怎麼能找出發生了什麼事情。

感謝, 添

FYI:http://apps.facebook.com/RelicBall/

+0

這是Azure的連接問題。你應該使用他們的支持渠道。 – 2013-05-09 15:05:33

+1

這聽起來對我來說就像你在Azure中進行「不,不」活動一樣,並且因爲它而受到限制。如果您的打開連接太多,長時間運行的交易太多,並且出於其他一些原因,就會發生這種情況。我不確定所有這些原因,所以你應該研究這些事情。通常,這是因爲您的應用程序或體系結構中存在錯誤或糟糕的設計決策。 – Jaxidian 2013-05-09 15:08:13

回答

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支持的票。

thths,Goodluck。

編輯:高級數據庫顯然提高了連接的限制,所以值得調查也快速解決這個問題,並可能長期運行一個。

http://blogs.technet.com/b/dataplatforminsider/archive/2013/07/23/premium-preview-for-windows-azure-sql-database-now-live.aspx