Tłotropienia połączenie z bazą danych wydaje
Mamy szereg aplikacji internetowych na różnych serwerach internetowych, które łączą się z jednym serwerem bazy danych. W ciągu ostatnich kilku miesięcy zauważyliśmy, że co jakiś czas nasze serwery internetowe nie będą mogły połączyć się z serwerem bazy danych.
naszego środowiska
Mamy kilka różnych środowisk internetowych, niektóre z ColdFusion i innym systemem .NET. Aplikacje .NET to zarówno formularze sieciowe, jak i MVC. Obejmują wiele wersji od 2.0 do 4.5. Zarówno serwery WWW ColdFusion, jak i .NET są maszynami opartymi na systemie Windows. Zarówno środowiska internetowe ColdFusion, jak i .NET są skupione, a niektóre z nich są fizyczne, podczas gdy inne są wirtualne.
Nasz serwer bazy danych to SQL Server 2008 r2. Zawiera wiele baz danych. Każda aplikacja ma własnego użytkownika bazy danych, z którym łączy się z serwerem, który daje mu dostęp do określonej bazy danych.
inne fakty
- Kiedy zauważymy problemy, które występują w krótkich seriach, które trwać od kilku sekund do kilku minut.
- Gdy zauważamy problemy, seria zawiera błędy z wielu różnych aplikacji, a nie tylko z jednej aplikacji na raz.
- Gdy zauważamy problemy, pakiet zawiera błędy z aplikacji pochodzących z różnych środowisk internetowych. (To skłania nas do myślenia, że możemy wykluczyć, że same aplikacje są problemem).
- Problemy z połączeniem występują w różnych momentach w ciągu dnia i nocy. Nie zawsze są one w czasach wysokiego zużycia.
- Monitorowaliśmy takie rzeczy, jak liczba połączeń użytkowników, pamięć, IO, użycie procesora itp. ... i nie widzieliśmy żadnych skoków ani niczego, co mogłoby wskazywać na problem.
- Zainstalowaliśmy wireshark na serwerach internetowych i serwerach db w nadziei, że uda nam się złapać problem bez powodzenia.
Pytania
- Czy ktoś ma sugestie gdzie mam szukać dalej?
- Czy są jakieś właściwości bazy danych, które mogą to powodować?
- Czy istnieje sposób lepszego "monitorowania" połączenia między bazą danych a serwerem sieciowym?
- Czy jest coś, co można zrobić po stronie aplikacji, aby lepiej zrozumieć, co się dzieje?
Błędy złapany przez Apps
- błędów .NET
- A lub wystąpił błąd specyficzne dla instancji podczas ustanawiania połączenia z SQL Server związanych z siecią. Serwer nie został znaleziony lub nie był dostępny.Sprawdź, czy nazwa instancji jest poprawna i czy program SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: dostawca potoków nazwanych, błąd: 40 - nie można otworzyć połączenia z serwerem SQL)
- Limit czasu wygasł. Okres oczekiwania upłynął przed zakończeniem operacji lub serwer nie odpowiada.
- Wystąpił błąd poziomu transportu podczas odbierania wyników z serwera. (dostawca: dostawca protokołu TCP, błąd: 0 - upłynął limit czasu semafora.)
- Limit czasu wygasł. Limit czasu upłynął przed uzyskaniem połączenia z puli. Mogło tak się stać, ponieważ wszystkie połączone połączenia były w użyciu i został osiągnięty maksymalny rozmiar puli.
- błędy ColdFusion
- Błąd Wykonywanie kwerendy bazy danych. Połączenie TCP/IP z hostem nie powiodło się. java.net.ConnectException: Przekroczono limit czasu połączenia: podłącz
Wystąpił błąd w linii 38. - Błąd podczas wykonywania zapytania do bazy danych. Połączenie zostało zresetowane przez urządzenie równorzędne: błąd zapisu gniazda
Wystąpił błąd w linii 91. - Błąd podczas wykonywania zapytania do bazy danych. Upłynął limit czasu próbuje nawiązać połączenie
Wystąpił błąd na linii 38.
- Błąd Wykonywanie kwerendy bazy danych. Połączenie TCP/IP z hostem nie powiodło się. java.net.ConnectException: Przekroczono limit czasu połączenia: podłącz
To brzmi bardziej jak problem z łącznością sieciową niż problem z bazą danych. –
To naprawdę brzmi jak problem sieciowy z kartą sieciową, przełącznikiem, routerem, kablem itp. –
Jaki byłby najlepszy sposób na * poznanie * tego na pewno lub wyśledzenia? – Jason