Кажется, я вижу это как с моим SQL Server, так и с моим набором реплик MongoDB. Я получаю лишь горстку в день, но меня это все равно беспокоит.
Я получаю тайм-аут при попытке открыть новое соединение с удаленной системой. Это происходит даже тогда, когда удаленная система работает и отвечает. У меня есть один экземпляр SQL Server и набор реплик mongodb с тремя системами. Похоже, что при умеренных и более высоких нагрузках это происходит довольно спорадически.
Я использую пулы соединений, и их размеры должны ограничивать количество подключений (конечно, для каждого процесса), ни один из них не должен видеть более 1k подключений, точно так же, как я вижу таймауты при попытке подключения.
SQL-сервер - это Windows (конечно), экземпляры mongodb находятся в Ubuntu, а клиенты представляют собой комбинацию node.js в Linux и Windows, а также приложений .Net 4.5.
Я нахожусь в процессе создания более устойчивой (попробуйте 3 раза, прежде чем потерпите неудачу) архитектуры, точно так же, как и меня.
Что бы вы здесь увидели с точки зрения проблем?
Вопрос старый, и это может быть другая корневая проблема, но, поскольку я потратил больше недели на его отслеживание, и это может сэкономить кому-то время:
У меня проблема с похожей ошибкой. после того, как они окопались вместе с техподдержкой лазурного, их лучшее предположение (они Точно сказать не могу) заключается в том, что неактивные соединения уничтожаются каким-либо прокси между веб-приложениями и сервером. это происходит примерно через 4 минуты. и таким образом, что и сервер, и клиент понятия не имеют, что это происходит. когда вы пытаетесь использовать соединение в этом состоянии, клиент отправляет пакеты, которые никогда не доходят до сервера.
Последнее, что я слышал, это не будет изменено / исправлено. Итак, варианты предотвращения этого (в порядке разумности):
ваша попытка еще раз, если соединение не удастся, будет работать, если оно действительно создаст новое соединение, в противном случае оно просто заставит приложение ждать дольше, прежде чем перейти к той же точке.
Я обновлю через неделю, если это действительно решит проблему навсегда.
edit: комбинация уничтожения незанятых соединений на клиенте и отправки сообщения keep-alive с сервера каждые 2 минуты решила эту проблему.