Я пытаюсь сузить и отладить довольно неуловимую ошибку:
State: 08001
Code: 258
Msg: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Timeout error [258].
State: HYT00
Code: 0
Msg: [Microsoft][SQL Server Native Client 10.0]Login timeout expired
State: 08001
Code: 258
Msg: [Microsoft][SQL Server Native Client 10.0]Unable to complete login process due to delay in prelogin response
Что я пробовал до сих пор:
Ни одно из вышеперечисленных действий до сих пор не привело к возникновению каких-либо проблем с конфигурацией БД / сети, а также нет никаких очевидных проблем с кодом приложения.
В большинстве случаев соединение создается успешно.
В: Какие еще аспекты могут повлиять на создание подключения? И производить такие, казалось бы, случайные отказы?
Проверьте, существует ли проблема на локальном хосте сервера, чтобы исключить возможность того, что сетевое оборудование вызывает тайм-аут. Если предположить, что проблема исчезнет при тестировании на локальном хосте, то это вполне может быть связано с сетью.
Вы упоминаете задержку в 23 мс при проверке трассировки каждую минуту. 23 мс не похоже на подключение к локальной сети и, скорее всего, имеет несколько переходов, где вы также можете иногда наблюдать потерю пакетов.
Вместо того, чтобы делать traceroute каждую минуту, вы должны делать ping без тайм-аута, например ping -t servername
и пусть сидит. Затем через некоторое время вы можете проверить статистику с помощью CTRL + BREAK и ищите потерю пакетов или колебания задержки.
Другой вариант (если вы еще не делаете это) - использовать PDO для подключения