Azure SQLデータベースに固有の一時的なエラーやその他の種類のエラーがあります。一時的なフォールトエラーは、通常、クライアントプログラムからの次のエラーメッセージの1つとして現れます。
•サーバー上のデータベースは現在利用できません。後で接続を再試行してください。問題が解決しない場合は、カスタマーサポートに連絡して、セッショントレースIDを
に指定してください。•サーバー上のデータベースは現在使用できません。後で接続を再試行してください。問題が解決しない場合は、カスタマーサポートに連絡し、のセッショントレースIDを提供してください。 (Microsoft SQL Server、エラー:40613)
•既存の接続がリモートホストによって強制的に閉じられました。
?System.Data.Entity.Core.EntityCommandExecutionException:コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。 ---> System.Data.SqlClient.SqlException:サーバーから結果を受け取るときにトランスポートレベルのエラーが発生しました。 (プロバイダー:セッションプロバイダー、エラー:19 - 物理的な接続は使用できません)
•データベースが再構成中で、新しいページを適用中であるためにセカンダリデータベースへの接続が失敗しました。プライマリ・データベースでのアクティブな変換。
これらのエラーと詳細については、hereを参照してください。 Azure SQLデータベースに接続するアプリケーションでは、再試行ロジックを作成する必要があります。
public void HandleTransients()
{
var connStr = "some database";
var _policy = RetryPolicy.Create < SqlAzureTransientErrorDetectionStrategy(
retryCount: 3,
retryInterval: TimeSpan.FromSeconds(5));
using (var conn = new ReliableSqlConnection(connStr, _policy))
{
// Do SQL stuff here.
}
}
リトライロジックの作成方法の詳細here
スロットルもタイムアウトの原因です。次のクエリは、Azure SQLデータベースに対する作業負荷の影響を理解するのに役立ちます。99.9%<の
SELECT
(COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * 1.0)/COUNT(end_time) AS 'CPU Fit Percent'
,(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END) * 1.0)/COUNT(end_time) AS 'Log Write Fit Percent'
,(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END) * 1.0)/COUNT(end_time) AS 'Physical Data Read Fit Percent'
FROM sys.dm_db_resource_stats
--serviceレベルの目標(SLO)=次の階層にあなたの助けを
感謝を行きます!私たちは、こうした種類のエラーを引き起こすのはこの種の行動だと考えました。宜しくお願いします! –
私はデバッグのためのドキュメントを見つけることができませんが、最終的にそれを見つけると私はあなたと共有します。私はそれが役に立つとうれしいです。 –
遅れて申し訳ありません。それは役に立つかもしれません。 https://docs.microsoft.com/en-us/Azure/app-service/web-sites-dotnet-troubleshoot-visual-studio –