Sử dụng Entity Framework, tôi nhận được một số ngoại lệ sau đêm qua tại một trong những ứng dụng của tôi:System.Data.EntityException: Các nhà cung cấp tiềm ẩn thất bại trên Commit
System.Data.EntityException: The underlying provider failed on Commit. --->
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior
to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler,SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest)
at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
at System.Data.SqlClient.SqlInternalTransaction.Commit()
at System.Data.SqlClient.SqlTransaction.Commit()
at System.Data.EntityClient.EntityTransaction.Commit()
--- End of inner exception stack trace ---
at System.Data.EntityClient.EntityTransaction.Commit()
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Data.Entity.Internal.InternalContext.SaveChanges()
at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
Điều thú vị về lỗi này là dữ liệu đã thực sự được ghi vào cơ sở dữ liệu. Tôi found a related post on a MS site dường như cho biết đây là lỗi liên quan đến mạng.
Một vài câu hỏi mà tôi có thể sử dụng sự hỗ trợ trên là:
- Những tùy chọn sao tôi phải rắc rối shoot lỗi này?
- Có nhiều khả năng mạng liên quan hoặc DB có thể là một nghi phạm không?
- Làm cách nào để tôi biết mã giao dịch có thực sự hoàn tất không?
- Tôi có nên truy vấn DB về lỗi này để kiểm tra xem thành công hay đơn giản là thử lại giao dịch?
- Nếu tôi thử giao dịch lại, làm thế nào điều này có thể được thực hiện tự động với Khung thực thể hoặc tôi chỉ cần bắt/thử lại?
- Tôi nên xem những mặt hàng nào khác?
Xin cảm ơn trước.
CẬP NHẬT
Sử dụng Ignite for SQL chúng tôi có thể xác định rằng một quá trình SQL thứ cấp từ một nhóm khác được độc chiếm CPU ngăn chặn ứng dụng của chúng tôi từ hoạt động bình thường. Tóm lại, chúng tôi đang tiến lên phía trước với việc thêm một máy chủ phụ để ngăn chặn xung đột hơn nữa giữa hai đội.
Điều thú vị về ngoại lệ là giao dịch thực sự thành công hơn là không thành công.
Tôi biết đã lâu rồi, nhưng bạn có thể giải thích về cách bạn sử dụng Ignite cho SQL không? Trong trường hợp của tôi nó không phải luôn luôn xảy ra vì vậy thật khó để biết khi nào để xem máy chủ. – gitsitgo
Không thể nói rằng tôi là một guru đốt cháy; chúng tôi có nhóm hiệu suất DB xử lý nội dung này. Tôi có thể nói rằng những gì tôi thường tìm kiếm khi tôi nhận được các vấn đề hiệu suất là báo cáo sql hàng đầu (như đốt cháy các tiểu bang "các thanh lớn"). Đó thường là các truy vấn hogging tất cả mọi thứ. Từ đó nó là vấn đề điều chỉnh các truy vấn đó. Xin lỗi vì tôi không thể cung cấp thêm chi tiết cụ thể mà bạn đang tìm kiếm. Chúc may mắn. – Randy