Udostępnij za pośrednictwem


Rozwiązywania problemów z routingiem i dostarczanie wiadomości

Ta sekcja zawiera sugestie do rozwiązania typowych problemów związanych z routingu i wiadomości dostawy.

Technika: Diagnozowanie dostarczania wiadomości

Jeśli wiadomości nie są pomyślnie dostarczane między dwiema usługami, ssbdiagnose narzędzie do generowania raportu runtime konwersacji.Raport runtime spowoduje wyświetlenie wszelkich błędów napotkanych przez operacje konwersacji.Jeśli wystąpią błędy, ssbdiagnose będzie również analizować konfiguracja między służbami i zgłosić wszelkie znalezione problemy konfiguracja.Aby uzyskać więcej informacji, zobacz Narzędzie ssbdiagnose.

Problem: Wiadomości pozostają w kolejce transmisji

Upewnij się, że Service Broker wiadomości dostawy jest aktywowana w bazie danych.Is_broker_enabled kolumna sys.databases wskazuje, czy aktywna jest dostarczanie wiadomości broker, jak pokazano w następującym przykładzie:

SELECT is_broker_enabled FROM sys.databases
WHERE database_id = DB_ID() ;

Broker dostarczenia wiadomości można dezaktywować uniemożliwić wiadomości są dostarczane do niewłaściwej bazie.Więcej informacji o Service Broker Dostarczanie wiadomości, zobacz Zarządzanie Service Broker tożsamości.Aby uzyskać więcej informacji na temat sposobu aktywacji Service Broker Dostarczanie wiadomości, zobacz Jak Aktywacja Service Broker dostarczanie wiadomości w bazach danych (Transact-SQL).

Jeśli Service Broker wiadomość dostawy jest aktywny, wyboru transmission_status kolumna w sys.transmission_queue wykazu widoku dla wiadomości.Oto typowe komunikaty o błędach:

Komunikat

Opis

Brak trasa dla usługa.

Service Broker nie można zlokalizować trasa do określonej usługa.

miejsce docelowe Service Broker jest nieosiągalny.

Service Brokernie można dostarczyć wiadomości do miejsce docelowe Service Broker.

Warstwa transportu jest niedostępny.

Nie Service Broker istnieje punkt końcowy w wystąpienie, lub Service Broker punkt końcowy nie został pomyślnie uruchomiony.

Kolejka docelowa jest wyłączona.

The queue that the destination service uses has the STATUS option set to OFF.Service Broker does not add new messages to a queue with a STATUS of OFF.

Wystąpił błąd podczas odbierania danych: "10054 (istniejące połączenie zostało zamknięte przez hosta zdalnego.)".

Strona zdalna konwersacji zaakceptowała połączenie TCP/IP, ale zamknął połączenie może być wysłana wiadomość.

(Brak)

Service Broker nie jeszcze próbował wysłać wiadomość.Jeśli enqueue_time kolumna pokazuje została wiadomość w kolejce długi czas Service Broker wiadomości dostawy może nie zostać uaktywniona w bazie danych.

Problem: Istnieje trasa bez trasy dla usługi pokazuje stan transmisji

Najbardziej typowe przyczyny tego problemu są następujące:

  • Instrukcja Wyślij wiadomość utworzenia trasa istniały pomyślnie dostarczyć wiadomości.

  • trasa Następnie został utworzony, ale Service Broker jeszcze nie próbował wysłać ponownie wiadomość.

Aby uzyskać informacje dotyczące ponownych prób, zobacz Service BrokerUsługa Routing i sieć.

Ensure that the service name specified in the message exactly matches the service name specified in the route.Service Broker uses a byte-by-byte binary comparison to match service names.Jeśli istnieje trasa, która określa nazwę usługa, można porównać nazwy, uruchamiając następującą kwerendę:

SELECT N'No Exact Match' = tq.to_service_name
FROM sys.transmission_queue AS tq
WHERE NOT EXISTS
    (SELECT remote_service_name
     FROM sys.routes AS routes
     WHERE tq.to_service_name = routes.remote_service_name) ;

Ostrzeżenie

Niektóre nazwy usługa może pojawiać się w zestaw wyników , nawet jeśli są one zgodne trasa.Trasa nie określa nazwę usługa (remote_service_name = NULL) będzie odpowiadać nazwie usługa z wiadomości.

Aby uzyskać więcej informacji o marszrutach Service Broker, zobacz Service Broker routingu.

Wiadomości określa identyfikator wystąpienie broker, sprawdź, czy trasy określa ten sam identyfikator wystąpienie broker albo że trasa nie określono identyfikatora wystąpienie broker wcale.

Sprawdź, czy trasa nie wygasł.Życiaczas kolumny sys.routes widok katalogu zawiera data wygaśnięcia i czas dla trasa.

Problem: Transmisja stanu pokazuje docelowe Service Broker nieosiągalne

obiekt obiekt docelowy nie akceptuje wiadomości.To wskazywać określona nazwa usługa nie pasuje nazwa usługa, obiekt obiekt docelowy SQL Server wystąpienie hostów.Może to również oznaczać obiekt obiekt docelowy nie ma trasa dla usługa.Aby rozwiązać ten problem, sprawdź marszruty i usługa konfiguracji dla obiekt docelowy.

Problem: Transmisja stanu pokazuje warstwy transportu niedostępne

Sprawdź, czy Service Broker istnieje punkt końcowy.Jeśli końcowy nie istnieje, utwórz go.Jeśli punkt końcowy istnieje, upewnij się, że Państwo punkt końcowy jest uruchomiona. Aby uzyskać więcej informacji, zobacz Service BrokerPunkty końcowe.Aby uzyskać więcej informacji na temat sposobu tworzenia punktu końcowego, zobacz Jak Uaktywnianie Service Broker Networking (Transact-SQL).

Problem: Pokazuje stan transmisji "Istniejące połączenie zostało zamknięte przez hosta zdalnego"

Transport zabezpieczeń może być niepoprawnie skonfigurowany lub adres TCP/IP dla trasa określa port, który jest używany przez usługa inne niż Service Broker.

Ostrzeżenie

The port specified in the route must correspond to the port that is used by the Service Broker endpoint on the remote instance of the Aparat baz danych.Service Broker uses the Service Broker communications protocols to transmit messages, not the Tabular Data Stream protocol that is used to transmit Transact-SQL batches and results.Dlatego port używany przez Service Broker końcowy różni się od portu, który jest używany do przesyłania Transact-SQL.

Sprawdź, czy Service Broker konfiguracja punktu końcowego, aby zapewnić dwa wystąpienia zgodny ustawienia zabezpieczeń.Jeśli Service Broker końcowy dla jednego wystąpienie określa wymagane lub włączone, Service Broker nie można określić punkt końcowy do innego wystąpienie Brak.

Sprawdzanie certyfikatów, użytkownicy i uprawnienia dla Service Broker zabezpieczeń transportu.Aby uzyskać więcej informacji, zobacz Zabezpieczeń transportu Service Broker.