2014-04-21 14 views
5

trang web của chúng tôi đã được chạy trong một vài tuần trong Azure mà không nhận được lỗi này:Azure SqlException: Cơ sở dữ liệu trên máy chủ hiện không khả dụng

SqlException: Database 'database' on server 'server' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of 'guid'.

cuối cùng Nó đã nhận rằng một ngày nào đó khi có một ít hơn 2K của người dùng hoạt động (đồng thời). Đây là the closest question mà tôi có thể tìm thấy trong SO. Chúng tôi không sử dụng EF mặc dù chúng tôi đang sử dụng Dapper. Tôi đã hết ý tưởng làm thế nào để gỡ lỗi ứng dụng của chúng tôi để tìm hiểu nguyên nhân gây ra vấn đề và thậm chí còn khó khăn hơn khi vấn đề chưa xuất hiện trong 2 ngày qua. Tôi chắc chắn cần phải được trên Lookout và tôi cần các bạn, bất kỳ tip, về nơi tôi nên được nhìn vào, những gì tôi cần phải làm gì để xác định nguyên nhân của vấn đề, và có thể sửa chữa nó.

+0

Điều này xảy ra với chúng tôi một lần trong một thời gian - chúng tôi đã bỏ qua nó cho đến nay. Tôi đoán đó là một số quá trình bảo trì tạm thời về phía SQL Azure. – sharptooth

+0

@sharptooth mức độ thường xuyên xảy ra với bạn? Và bạn đã ghi lại có bao nhiêu người dùng bạn có khi nó xảy ra? Maitenance, đó là một trong những lý do có thể xảy ra mà tôi đã nói với nhóm của tôi nhưng tôi muốn ai đó có thể xác nhận nó. Và giảm xuống ít nhất nửa giờ không phải là điều tốt đẹp mà người dùng phàn nàn. –

+0

Không có gì giống như nửa giờ - thường là vài giây. Và điều đó xảy ra có lẽ một lần mỗi tháng độc lập với hoạt động ứng dụng. – sharptooth

Trả lời

4

Có vẻ như bạn cần xử lý các lỗi tạm thời thông qua một số loại cơ chế xử lý lỗi tạm thời. Đây là bài viết hỏi một câu hỏi tương tự: SQL Azure Database retry logic Câu trả lời của David tương tự như cách tiếp cận mà chúng tôi đã thực hiện để giải quyết vấn đề.

Dưới đây là một liên kết khác đến một số mã tương tự như giải pháp của David và giải pháp của chúng tôi để thu hút sự chú ý của bạn. http://www.getcodesamples.com/src/4A7E4E66/41D6FAD

Chúng tôi có vấn đề tương tự khi lần đầu tiên chuyển sang SQL Azure nhưng bằng cách triển khai lại thử lại logic cho các vấn đề kết nối thoáng qua phần lớn thời gian khôi phục sau vài giây.

+1

Lỗi này chắc chắn là "tạm thời" được mong đợi. Liên kết này xác định các liên kết chính khác: http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sql-database.aspx –

0

Chúng tôi đã đi xuống con đường xử lý lỗi thoáng qua với Azure Transient Fault Block, nhưng điều này gây ra vấn đề lớn hơn - cụ thể là, nếu bạn đạt đến giới hạn kết nối SQL (easy to do), có thử lại logic tại chỗ chỉ makes things worse.

Nếu nó chỉ xảy ra mỗi tháng một lần, tôi sẽ rời khỏi nó và chỉ xử lý nó một cách duyên dáng cao hơn lên ngăn xếp. Cách khác là tạo custom retry policy để tránh thử lại một số lỗi nhất định, nhưng nó vẫn có thể gây hại nhiều hơn là tốt.

Các vấn đề liên quan