SQL Azure-Datenbank mit retry-Logik

Implementierte ich den folgenden code für die Handhabung von INSERT - /UPDATE retry-Logik mit exponentiellem backoff, beim schreiben einer Azure-Datenbank.

static SqlConnection TryOpen(this SqlConnection connection)
{
  int attempts = 0;
  while (attempts < 5)
  {
    try
    {
      if (attempts > 0)
       System.Threading.Thread.Sleep(((int)Math.Pow(3, attempts)) * 1000);
      connection.Open();
      return connection;
    }
    catch { }
    attempts++;
  }
  throw new Exception("Unable to obtain a connection to SQL Server or SQL Azure.");
}

Jedoch sollte ich in Erwägung ziehen, wiederholen Sie die Logik für meine Datenbank liest, wie gut? Oder würde die SqlCommand.CommandTimeout () - Methode ausreichen? Die meisten meiner Stücke sind eingeleitet mit dem folgenden code:

Dim myDateAdapter As New SqlDataAdapter(mySqlCommand)
Dim ds As New DataSet
myDateAdapter.Fill(ds, "dtName")

Es ist schwer zu wissen, welche Art von Transienten Fehlern in eine Produktionsumgebung mit Azure, so bin ich versucht zu tun, wie viel Klimaschutz wie möglich jetzt.

InformationsquelleAutor QFDev | 2013-03-08
Schreibe einen Kommentar