網站故障公告2:找到問題的重要線索


再次向大家致歉!網站故障給您帶來麻煩了!請諒解!

經過分析,確認4月16日下午15:30~18:00的網站故障是由兩種類型的System.Data.SqlClient.SqlException (0x80131904)異常引起的。

一個是System.Data.ProviderBase.DbConnectionPool.GetConnection超時;

一個是在System.Data.SqlClient.SqlDataReader.Close()時被RDS服務器強迫關閉了TCP連接。

詳細錯誤信息如下:

中文版錯誤信息:

System.Data.SqlClient.SqlException (0x80131904): Timeout 時間已到。在操作完成之前超時時間已過或服務器未響應。
   在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.SqlClient.SqlConnection.Open()
   在 NBearLite.Database.CreateConnection(Boolean tryOpenning)
   在 NBearLite.Database.ExecuteReader(DbCommand command)

System.Data.SqlClient.SqlException (0x80131904): 在從服務器接收結果時發生傳輸級錯誤。 (provider: TCP Provider, error: 0 - 遠程主機強迫關閉了一個現有的連接。)
   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   在 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   在 System.Data.SqlClient.TdsParserStateObject.ReadByte()
   在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.SqlDataReader.CloseInternal(Boolean closeReader)
   在 System.Data.SqlClient.SqlDataReader.Close()

英文版錯誤信息:

System.Data.SqlClient.SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at NBearLite.Database.CreateConnection(Boolean tryOpenning)

System.Data.SqlClient.SqlException (0x80131904): A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
   at System.Data.SqlClient.SqlConnection.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.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.CloseInternal(Boolean closeReader)
   at System.Data.SqlClient.SqlDataReader.Close()

對於這兩中類型的異常,有兩個可能的原因:

1. 達到了RDS最大數據庫連接數限制,但當時的監測數據並沒有顯示出這種情況。(對於這個可能的原因已經采取了措施)

2. 雲服務器與RDS之間的網絡存在問題。(阿里雲明天會進一步排查這個問題)

3. RDS的數據庫鏡像引起的。(詳見網站故障公告3:應該找到了問題的真正原因

不管是哪個原因,明天都會有辦法應對。

 

相關博文:

網站故障公告1:使用阿里雲RDS之后一個讓人欲哭無淚的下午

網站故障公告3:應該找到了問題的真正原因


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM