Tôi đã triển khai mã sau đây để xử lý logic thử lại INSERT/UPDATE với hàm trả về theo hàm mũ khi viết vào Cơ sở dữ liệu Azure.Cơ sở dữ liệu SQL Azure thử lại logic
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.");
}
Tuy nhiên, tôi cũng nên cân nhắc áp dụng lại logic cho cơ sở dữ liệu của mình? Hoặc phương thức SqlCommand.CommandTimeout() có đủ không? Hầu hết các nội dung đã được tôi thiết lập bằng cách sử dụng đoạn mã sau:
Dim myDateAdapter As New SqlDataAdapter(mySqlCommand)
Dim ds As New DataSet
myDateAdapter.Fill(ds, "dtName")
Thật khó để biết những gì sắp xếp của lỗi thoáng qua sẽ xảy ra trong một môi trường sản xuất với Azure vì vậy tôi đang cố gắng làm càng nhiều giảm nhẹ càng tốt bây giờ.
Tôi đang xem xét điều này ngay bây giờ. Khối TFH có cung cấp thông tin chi tiết về lý do tại sao kết nối bị xóa không? – QFDev