2013-04-19 11 views
8

Niedawno przeprowadziliśmy migrację klienta na platformę SQL Azure w trakcie wdrożenia produkcyjnego. Wszystkie znaki zewnętrzne zakończyły się sukcesem: wszystkie aplikacje internetowe połączone z nim działają.SQL Azure - połączenia zakończone niepowodzeniem - ale żadnych problemów?

Jednak gdy patrzymy na monitor Azure, widzimy wiele nieudanych połączeń. Nie byliśmy w stanie znaleźć wiele dokumentacji wyjaśniającej, co stanowi nieudane połączenie. I nikt z naszych użytkowników nie zgłaszał problemów. Czy ktoś wie, jak to możliwe?

enter image description here

Korzystanie zapytania próbki z tego artykułu (View Connection Issues on an SQL Azure Instance)

SELECT  
      [Date From] = EL.[start_time], 
      [Date To] = EL.[end_time], 
      [Database Name] = EL.[database_name], 
      [Event Type] = EL.[event_type], 
      [Event Sub Type] = EL.[event_subtype_desc], 
      [Description] = EL.[description], 
      [Additional Data] = EL.additional_data 
FROM sys.event_log EL 
WHERE EL.event_type != 'connection_successful' 
AND EL.event_subtype_desc != 'idle_connection_timeout' 
ORDER BY [Date From] DESC 

Widzimy wyniki tak:

2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000    connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000    connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000    connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000    connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000    connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 
2013-04-19 16:15:00.0000000 2013-04-19 16:20:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL 

a przykładem naszej ciąg połączenia, zgodnie z wnioskiem:

<add name="[MyContext]" 
    providerName="System.Data.SqlClient" 
    connectionString=" 
     Server=tcp:[machine].database.windows.net,1433; 
      Database=[database]; 
      User ID=[user]@[machine]; 
      Password=[password]; 
      Trusted_Connection=False; 
      Encrypt=True; 
      Connection Timeout=30;"/> 
+1

czy wyrejestrowany [dokumentacja ta] (http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx) i [TN Retry Logika dla Transient błędów jest Baza danych SQL systemu Windows Azure] (http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sql-database.aspx) – astaykov

+0

I właśnie natknąłem się na ten sam artykuł. Sprawdź zaktualizowane pytanie, dodałem wyniki kwerendy do dziennika zdarzeń i wszystkie wydają się być "zablokowanymi_przez_firewallami", mimo że żaden z naszych użytkowników nie zgłasza problemów ... –

+0

Gdzie są aplikacje, które łączą się z SQL Azure z systemem? Czy na pewno masz dostęp do wszystkich potrzebnych adresów IP? Czy którakolwiek z aplikacji łączy się z wieloma IP lub ma dynamicznie przydzielane adresy IP? Czy możesz opublikować format twoich ciągów połączeń? – greg84

Odpowiedz

1

Od pierwszego dnia uruchomienia nie widzieliśmy już nieudanych połączeń. Moje obecne myślenie jest takie, że może istnieć proces back-end na stronie Azure, który nie działał poprawnie z nową instancją, ale od tego czasu przestał działać lub został naprawiony, ponieważ nic nie zmieniliśmy. Pozwolę mu usiąść jeszcze kilka dni, a jeśli nie zobaczymy żadnych problemów, skreślmy go do błędów instalacji środowiska.

enter image description here

Oto stan w tygodniu lub tak później. Nie jest to strona mocno używana, ale nie ma już żadnych oznak błędów połączenia.

enter image description here

+0

Miałem ten sam problem na witrynie Azure z Mongo, Memcached i Redis. (Wszystkie 3 hostowane samodzielnie) Usunięto zależność od Redis, zmieniałem Memcached na Azure Cache i Mongo hosting na MongoLabs. Problem przestał się pojawiać.Dzisiaj utworzyłem stanowisko pośredniczące z podobną konfiguracją i problemy znów się pojawiają. – Philip

Powiązane problemy