Określona nazwa sieci nie jest już dostępna

10

Mamy aplikację, która uzyskuje dostęp do bazy danych (Sql server 2014 wersja Enterprise). Aplikacja wywołuje procedury składowane w celu uzyskania dostępu do bazy danych. Wszystko działało dobrze do niedawna zacznij wysyłać następujący błąd i zatrzymaj aplikacje. Ponowne uruchomienie aplikacji rozwiązuje problem tymczasowo, ale później pojawia się ten sam błąd.

Błąd: Wystąpił błąd na poziomie transportu podczas odbierania wyników z serwera. (Dostawca: Dostawca TCP, błąd: 0 - Określona nazwa sieci nie jest już dostępna.)

Przeprowadziłem wiele badań, które większość z nich wskazuje na problem sieci, ale nie znalazłem niczego, co mogłoby rozwiązać problem. Czy ktoś wie, jaką zmianę powinienem wprowadzić po stronie bazy danych, aby rozwiązać ten problem. Bardzo doceniam wszelkie sugestie.

Hailegziabher Dechassa
źródło

Odpowiedzi:

8

Wygląda na to, że występują problemy z rozpoznawaniem DNS lub długo działające zapytania.

Do rozwiązywania problemów z DNS

Jako pomoc zespołu i pomoc w rozwiązywaniu problemów dodaj i wejdź do pliku hosts na serwerach aplikacji (nie SQL Server) na c: \ windows \ system32 \ drivers \ etc

SQLServerIPAddress SQLServerName

Przykład:

172.16.0.5 ProductionSQLBox

W ten sposób nazwa serwera SQL zostanie rozwiązana przez plik hosts, dopóki nie znajdziesz prawdziwego problemu z tym, co się dzieje z rozpoznawaniem nazw.

Upewnij się i przetestuj plik hosts, pingując pole SQL z serwera aplikacji za pomocą wiersza polecenia. Lub naprzemiennie utwórz DSN z Administratorem ODBC w Panelu sterowania i przetestuj tam połączenie.

W przypadku długich zapytań

Zaimplementuj dłuższą wartość limitu czasu dla parametrów połączenia aplikacji łączących się z SQL Server.

Przykład

<connectionStrings> 
    <add name="webconfigconnectionString" connectionString="server=SQLServerName;database=dbName;uid=u‌​serName;password=ABC‌​123;Timeout=120" />
</connectionStrings>
Żądło
źródło
6

To nie jest problem z bazą danych. Po stronie bazy danych nie ma zmian, które mogłyby rozwiązać ten problem. Ten błąd jest spowodowany dużą przepustowością sieci lub błędem w aplikacji. Sugeruję, abyś przesłał ten błąd do zespołu Wintel / Network Twojej firmy. Mogą zmienić przełącznik sieci lub zarządzać przepustowością sieci, aby zatrzymać ten błąd.

użytkownik1987
źródło
3

To wygląda na problem z aplikacją.

Moim zdaniem aplikacja przyjmuje, że połączenie SQL jest zawsze dostępne (bez sprawdzania lub testowania przed uruchomieniem poleceń), więc gdy linia się zepsuje lub cokolwiek sprawi, że połączenie zostanie przerwane / zamknięte, aplikacja wyświetli ten komunikat.

Aby odtworzyć, po prostu zabij sesję SQL na serwerze SQL, a otrzymasz tak samo podobna wiadomość.

Paolo
źródło