Lógica de reintento de base de datos SQL Azure

He implementado el siguiente código para manejar la lógica de reintento INSERT / UPDATE con retroceso exponencial al escribir en una base de datos de Azure.

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.");
}

Sin embargo, ¿debería considerar aplicar la lógica de reintento para las lecturas de mi base de datos también? ¿O sería suficiente el método SqlCommand.CommandTimeout ()? La mayoría de mis lecturas se instituyen utilizando el siguiente código:

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

Es difícil saber qué tipo de errores transitorios ocurrirán en un entorno de producción con Azure, por lo que ahora estoy tratando de hacer la mayor mitigación posible.

Respuestas a la pregunta(3)

Su respuesta a la pregunta