Указанное имя сети больше не доступно

10

У нас есть приложение для доступа к базе данных (Sql server 2014 Enterprise Edition). Приложение вызывает хранимые процедуры для доступа к базе данных. Все работало нормально, до недавнего времени начинаю отправлять следующую ошибку и останавливаем приложения. Перезапуск приложения временно устраняет проблему, но с той же самой ошибкой.

Ошибка: ошибка транспортного уровня при получении результатов с сервера. (Поставщик: поставщик TCP, ошибка: 0 - указанное имя сети больше не доступно.)

Я провел много исследований, которые большинство из них указали на проблему с сетью, но не смог найти ничего, что действительно решило бы проблему. Кто-нибудь знает, какие изменения я должен сделать на стороне базы данных, чтобы решить эту проблему. Я высоко ценю любые предложения.

Hailegziabher Дечасса
источник

Ответы:

8

Похоже, проблемы с разрешением DNS или длинные запросы.

Для устранения неполадок DNS

В качестве вспомогательного средства и средства устранения неполадок добавьте и введите файл hosts на своих серверах приложений (не на сервере SQL) по адресу c: \ windows \ system32 \ drivers \ etc

SQLServerIPAddress SQLServerName

Пример:

172.16.0.5 ProductionSQLBox

Таким образом, имя сервера SQL будет разрешаться файлом hosts, пока вы не найдете реальную проблему в том, что происходит с разрешением имени.

Убедитесь, что вы протестировали файл hosts, выполнив команду ping с помощью окна SQL на сервере приложений через командную строку. Или, альтернативно, создайте DSN с администратором ODBC в Панели управления и протестируйте соединение там.

Для длительных запросов

Реализуйте более длительное значение времени ожидания команды для строк подключения приложения, подключающихся к SQL Server.

пример

<connectionStrings> 
    <add name="webconfigconnectionString" connectionString="server=SQLServerName;database=dbName;uid=u‌​serName;password=ABC‌​123;Timeout=120" />
</connectionStrings>
ужалить
источник
6

Это не проблема базы данных. На стороне базы данных нет изменений, которые могут решить эту проблему. Эта ошибка вызвана высокой пропускной способностью сети или ошибкой в ​​вашем приложении. Я бы посоветовал вам передать эту ошибку вашей команде Wintel / Network вашей компании. Они могут изменить сетевой коммутатор или управлять пропускной способностью сети, чтобы остановить эту ошибку.

user1987
источник
3

Это похоже на проблему приложения.

Мое мнение таково, что приложение полагает, что соединение SQL всегда доступно (без проверки или проверки перед запуском команд), поэтому, когда происходит сбой линии или что-либо вызывает разрыв / закрытие соединения, приложение выдает это сообщение.

Чтобы воспроизвести, просто убейте сеанс SQL на сервере SQL, и вы получите то же самое аналогичное сообщение.

Paolo
источник