Тайм-аут не может прочитать данные из транспортного соединения - PullRequest
1 голос
/ 05 февраля 2020

Начиная с субботы, 2 февраля 2020 года, около 10 часов утра у нас возникают случайные периодические проблемы с подключением между нашим экземпляром EC2 и экземпляром RDS, работающим MySQL 5.6.44.

Наш экземпляр EC2 работает Windows 2012 Server R2. У нас есть веб-сервисы ASMX и WCF, которые испытывают эту проблему.

Каждый сервер выполняет разные вызовы к базе данных.

Проблемы с подключением не были связаны только с одним вызовом / запросом к базе данных, и с 24 января 2020 года не было развернуто ни одного приложения или изменения базы данных. Кроме того, мы не видим каких-либо чрезмерных показателей, таких как соединения, процессор и т. Д. c. Все они выглядят средними по сравнению с прошлыми 2 неделями.

Я попытался перезапустить все экземпляры, включая экземпляр RDS. Но все равно получаю эти ошибки.

Некоторые примеры исключений являются случайными. Некоторые из запросов являются очень простыми SELECT операторами, возвращающими только 1 строку данных.

System.TimeoutException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, поскольку подключенная сторона не правильно ответить через некоторое время, или установленное соединение не удалось, потому что подключенный хост не смог ответить. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. ---> System. Net .Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, поскольку подключенный хост не смог ответить

и

MySql .Data.MySqlClient.MySqlException (0x80004005): истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает. ---> System.TimeoutException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, поскольку подключенный хост не смог ответить. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. ---> System. Net .Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить

и

error host = "WIN-H7RM59S7UK7" type = "System.Exception"
message = "Истекло время ожидания. Время ожидания истекло до завершения операции, или сервер не отвечает. requestGuid: db2badaf-8f17-4181-8e59-cbe656271491 "
source =" ProjectName "detail =" System.Exception: Timeout expired. Время ожидания истекло до завершения операции, или сервер не отвечает. requestGuid: db2badaf-8f17-4181-8e59-cbe656271491 at ProjectName.BookingServices.GetExistingResponsiveBookingPage (String requestId, String cultureCode, String coupon) в c: \ VSProjects \ ProjectName \ ProjectName \ linexs: 15. "2020-02-05T09: 07: 17.7473532Z" />

и

e rror host = "WIN-H7RM59S7UK7"
type = "System. Net .Sockets.SocketException" message = "Попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенному хосту не удалось ответить "source =" System "
detail =" System.TimeoutException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, так как подключенная сторона не ответила должным образом через некоторое время или не удалось установить установленное соединение, поскольку подключенный хост не смог ответить. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. ---> System. Net .Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не ответил на System. Net. Sockets.NetworkStream.Read (буфер Byte [], смещение Int32, размер Int32) --- конец трассировки стека внутренних исключений --- в System. Net .Sockets.NetworkStream.Read (буфер Byte [], смещение Int32, Размер Int32) в MySql .Data.Common.MyNetworkStream.Read (буфер Byte [], смещение Int32, счетчик Int32) --- конец трассировки стека внутренних исключений --- в MySql .Data.Common.MyNetworkStream. Чтение (буфер Byte [], смещение Int32, число Int32) в MySql .Data.MySqlClient.TimedStream.Read (буфер Byte [], смещение Int32, число Int32) в массиве System.IO.BufferedStream.Read (массив Byte []) , Смещение Int32, число Int32) в MySql .Data.MySqlClient.MySqlStream.ReadFully (поток потока, буфер Byte [], смещение Int32, число Int32) в MySql .Data.MySqlClient.MySqlStream.LoadPacket () в * 108 5 * .Data.MySqlClient.MySqlStream.ReadPacket () в MySql .Data.MySqlClient.NativeDriver.ReadOk (логическое чтение)
в MySql .Data.MySqlClient.MySqlDegnate * .Data.MySqlClient.MySqlConnection.Open () в TMSShared. MySQL .General.CallMysqlSPReturnReader (String sName, List 1 oParameters, Action 1 fn) в c: \ VSProjects \ TMSShared \ TMSShared \ MySQLShared \ MySQLhared \ строка 163 в API.DAL.POCO.Availability.MealPlan.GetAllHotelMealPlanBySupplierId (Int32 iSupplierId) в c: \ VSProjects \ ProjectNameAPI \ API \ DAL \ POCO \ Availability \ MealPlan.cs: строка 227 в API..D .GlobalAvailability.Get (GlobalAvailabilityRequest globalAvailabilityRequest) в c: \ VSProjects \ ProjectName \ API \ DAL \ POCO \ Availability \ GlobalAvailability.cs: строка 409 в API.DAL.BusinessLogi c .Request.GlobalAvailabilityRequailabilityRequailableRequailability (GlobalAvailability )quailAquailableRequailable (GlobalAvailabilityRequality) c: \ VSProjects \ ProjectName \ API \ DAL \ BusinessLogic \ Request.cs: строка 463 "
time =" 2020-02-05T09: 52: 19.6013482 Z "/>

и

error host =" WIN-H7RM59S7UK7 "
type =" System.Threading.ThreadAbortException "message =" Поток был прерван . "source =" MySql .Data "
detail =" System.Threading.ThreadAbortException: поток был прерван. в MySql .Data.Common.MyNetworkStream.HandleOrRethrowException (исключение e) в MySql .Data.Common.MyNetworkStream.Read (Byte [] смещение Int32, число Int32) в MySql .Data.MySqlClient.TimedStream .Read (буфер Byte [], смещение Int32, число Int32) в System.IO.BufferedStream.Read (массив Byte [], смещение Int32, число Int32) в MySql .Data.MySqlClient.MySqlStream.ReadFully (поток потока, Байт [] буфер, смещение Int32, количество Int32) в MySql .Data.MySqlClient.MySqlStream.LoadPacket () в MySql .Data.MySqlClient.MySqlStream.ReadPacket () в MySql .Data.MySativeDli.Dli. GetResult (Int32 & disabledRow, Int64 & insertId) в MySql .Data.MySqlClient.Driver.NextResult (Int32 StatementId, логическая сила) в MySql .Data.MySqlClient.MySqlDataReader.NextResultSl. 110. at. MySqlCommand.ExecuteReader (поведение CommandBehavior) в TMSShared. MySQL .General. CallMysqlSPReturnReader (String sName, List 1 oParameters, Action 1 fn) в c: \ VSProjects \ TMSShared \ TMSShared \ MySQL \ General.cs: строка 163 в TMSShared.Utils.Message.GetLoginMessage (LoginMessage iStatusameameCameCameCameC8, LanguageCameC8, LanguageCameC8, C) *: \ VSProjects \ TMSShared \ TMSShared \ Utils \ Message.cs: строка 170 в API.DAL.APIUser.CheckCredentials (строка sEmail, строка sPass, строка sUserIP, Int32 iUserType) в c: \ VSProjects \ ProjectName \ API DAL \ APIUser.cs: строка 107 в API.HotelAPI.PostRoomUpdate () в c: \ VSProjects \ ProjectName \ API \ Service.asmx.cs: строка 97 "
time =" 2020-02-03T11: 10 : 18.2941871Z "/>

РЕДАКТИРОВАТЬ ДОПОЛНИТЕЛЬНУЮ ИНФОРМАЦИЮ

Проблема началась 2020-02-02 09:45:10 и продолжается с тех пор, как эта date В нашем файле журнала IIS HTTPErr на этот день приведен фрагмент записей до и после того времени, когда мы начали испытывать эти проблемы:

Я скрыл внешние IP-адреса

2020-02-02 09:36:28 *.*.*.* 62969 10.0.0.12 443 - Timer_ConnectionIdle
2020-02-02 09:38:29 *.*.*.* 58836 10.0.0.12 443 - Timer_ConnectionIdle
2020-02-02 09:41:44 *.*.*.* 38060 10.0.0.12 443 - Timer_ConnectionIdle
2020-02-02 09:43:35 *.*.*.* 39069 10.0.0.12 443 - Timer_ConnectionIdle
2020-02-02 09:43:35 *.*.*.* 36349 10.0.0.12 443 - Timer_ConnectionIdle

а потом когда проблема в первый раз мы увидели

2020-02-02 09:45:10 *.*.*.* 53951 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdvService.asmx/GetAdvGlobalAvailability - 1 Connection_Abandoned_By_ReqQueue mydomain.com+(API+V1.04)
2020-02-02 09:45:41 *.*.*.* 53967 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdvService.asmx/GetAdvGlobalAvailability - 1 Connection_Abandoned_By_ReqQueue mydomain.com+(API+V1.04)
2020-02-02 09:46:04 *.*.*.* 53971 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdvService.asmx/GetAdvGlobalAvailability - 1 Connection_Abandoned_By_ReqQueue mydomain.com+(API+V1.04)
2020-02-02 09:46:29 *.*.*.* 51898 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
...
...
...
2020-02-02 12:47:26 *.*.*.* 64846 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:33 *.*.*.* 40169 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/Service.asmx/PostRoomUpdate 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:33 *.*.*.* 18340 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:35 *.*.*.* 18426 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:38 *.*.*.* 18938 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:38 *.*.*.* 18950 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:40 *.*.*.* 19124 10.0.0.12 443 HTTP/1.1 POST /API/V1.04/AdsHotelService.asmx/getRoomAvailability 503 1 AppOffline mydomain.com+(API+V1.04)
2020-02-02 12:47:40 *.*.*.* 64424 10.0.0.12 443 HTTP/1.1 POST /API/V1.01/AdvService.asmx/GetAdvAvailability 503 1 Disabled mydomain.com+(API)
2020-02-02 12:56:07 *.*.*.* 38634 10.0.0.12 80 HTTP/1.0 GET / 404 - NotFound -
#Software: Microsoft HTTP API 2.0
#Version: 1.0
#Date: 2020-02-02 13:05:22
#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-status s-siteid s-reason s-queuename
2020-02-02 13:05:21 *.*.*.* 58945 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:05:21 *.*.*.* 58948 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:05:21 *.*.*.* 58944 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:05:26 *.*.*.* 58946 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:06:27 *.*.*.* 58984 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:06:31 *.*.*.* 38084 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:06:31 *.*.*.* 33065 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:09:23 *.*.*.* 46315 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-02 13:10:02 *.*.*.* 58386 10.0.0.12 443 - - - - - Timer_MinBytesPerSecond -
2020-02-02 13:13:48 *.*.*.* 58382 10.0.0.12 443 - - - - - Timer_MinBytesPerSecond -

Сейчас я не вижу ошибок 503 в файле журнала, но мы испытываем проблемы с подключением между нашим экземпляром EC2, на котором запущен IIS, и нашей базой данных RDS.

2020-02-04 09:00:26 *.*.*.* 45371 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:03:22 *.*.*.* 53461 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:04:07 *.*.*.* 55266 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:04:07 *.*.*.* 33402 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:04:07 *.*.*.* 48068 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:04:17 *.*.*.* 44998 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:06:38 *.*.*.* 38659 10.0.0.12 443 - - - - - Timer_ConnectionIdle -
2020-02-04 09:06:58 *.*.*.* 35861 10.0.0.12 443 - - - - - Timer_ConnectionIdle -

Я не уверен, связана ли эта проблема с Windows, IIS, MySQL или связью между двумя экземплярами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...