SQL Azureへの接続(ADO.NET)では、再接続を考慮する

SQL Serverと異なるSQL AzureのConnection問題

 

SQL Azureは、高可用性を維持するためにロードバランスして、データベースがサーバーを移動します。
データベースが別のサーバーに移動すると、コネクションプールは、無効になります。

SQL Connectionを再接続(retry)しない場合、リクエストが失敗しエラーが発生します。
SQL Azureでは、再接続(retry)を組み込むことが重要になります。

接続(connection)が閉じると、問題を解決するためにconnection objectをcloseとopenするのに、数百msから数秒待つ必要があります。ごくまれに、再接続に失敗することがあります。

retry処理を組み込んだコード例が、「SQL Azure Connection Retry」(SQL Azure Connection Retry Updateの方が見やすいですね~)で紹介されています。

参考