Routing rozwiązywania problemów i dostarczanie wiadomości

W tej części podano wskazówki do rozwiązania typowych problemów związanych z marszruty i wiadomości dostawy.

Technika: Diagnozowanie dostarczanie wiadomości

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

Problem: Pozostać wiadomości w kolejce transmisji

Upewnić się, że Service Broker dostarczanie wiadomości jest aktywowana w bazie danych. The is_broker_enabled kolumna of sys.databases shows whether broker message delivery is activated, as shown in the following sample:

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

Aby zapobiec wiadomości są dostarczane w niewłaściwej bazie danych można dezaktywować brokera dostarczenia wiadomości.Aby uzyskać więcej informacji na temat Service Broker dostarczanie wiadomości, zobacz Zarządzanie usługa Broker tożsamości. Aby uzyskać więcej informacji na temat sposobu aktywacji Service Broker dostarczanie wiadomości, zobacz Jak Uaktywnianie dostarczanie wiadomości usługa Broker w bazy danych (języka Transact-SQL).

Jeśli Service Broker wiadomość jest aktywna, wyboru transmission_status kolumnasys.transmission_queue widok wykazu dla wiadomości.Oto typowe komunikaty o błędach:

Komunikat

Description

Brak trasa dla usługa.

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

Obiekt miejsce docelowe Service Broker nie jest dostępny.

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

Warstwa transportu jest niedostępny.

Nr Service Broker punkt końcowy występuje w wypadku, lub Service Broker punkt końcowy nie została uruchomiona pomyślnie.

Kolejka miejsce docelowe 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ącego połączenia przymusowo zostało zamknięte przez zdalnego hosta).".

Strony zdalnej komunikacji zaakceptowała połączenie TCP/IP, ale zamknął połączenie może być wysłana wiadomość.

(Brak)

Service Broker nie zostały jeszcze próbował wysłać wiadomość.Jeśli enqueue_time kolumnie są wyświetlane były wiadomości w kolejce długi czas, Service Broker dostarczanie wiadomości może nie zostać uaktywniona w bazie danych.

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

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

  • Instrukcja SEND tworzone wiadomości, gdy istnieje trasa pomyślnie dostarczyć wiadomości.

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

Aby uzyskać więcej informacji na temat ponownych prób zobacz usługa Broker 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) ;

Uwaga

Niektóre nazwy usługa mogą być wyświetlane w wyniku ustawiane nawet wtedy, gdy są one zgodne trasa.Trasa, która nie określa nazwy usług (remote_service_name = NULL) będzie zgodna z nazwą usługa, używany z dowolną wiadomość.

Aby uzyskać więcej informacji na temat usługa Broker tras Zobacz usługa Broker routingu.

Komunikat informuje o identyfikatorze wystąpienie brokera, sprawdź, czy trasy określa ten sam identyfikator wystąpienie brokera, albo że trasa nie określono identyfikatora wystąpienie brokera we wszystkich.

Sprawdź, czy nie upłynął trasa.kolumna okres istnienia sys.routes wykazu widoku znajduje się data wygaśnięcia i czas dla marszruty.

Problem: miejsce docelowe usługa Broker nieosiągalne pokazuje stan transmisji

Obiekt docelowy nie akceptuje wiadomości.Może to oznaczać, że określona nazwa usługa nie jest zgodny z nazwą usługa, obiekt obiekt docelowy SQL Server wystąpienie hostów. Może również wskazywać, że obiekt obiekt docelowy nie zawiera trasa dla usługa.Aby rozwiązać ten problem, sprawdź konfiguracja routingu i usługa dla obiekt docelowy.

Problem: Warstwa transportu niedostępne pokazuje stan transmisji

Sprawdź, czy Service Broker istnieje punkt końcowy. Jeśli końcowym nie istnieje, utwórz go.Jeśli punkt końcowy istnieje, sprawdź, czy stan punktu końcowego jest uruchomiony.Aby uzyskać więcej informacji zobacz Punkty końcowe usługa Broker. Aby uzyskać więcej informacji na temat sposobu tworzenia punktu końcowego zobacz Jak Uaktywnianie usługa Broker Networking (języka Transact-SQL).

Problem: “ Istniejące połączenie zostało zamknięte wymuszenie przez hosta zdalnego ” pokazuje stan transmisji

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

Uwaga

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 Database Engine.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 jest używany przez port Service Broker punkt końcowy różni się od portu, który jest używany do przesyłania Transact-SQL.

Sprawdź Service Broker Upewnij się, że dwa wystąpienia mają ustawienia zabezpieczeń sieci zgodnej konfiguracja punktu końcowego. Jeśli Service Broker punkt końcowy dla jednego wystąpienie określa wymagane lub ENABLED, Service Broker punkt końcowy dla drugiego wystąpienie nie można określić wartość NONE.

Sprawdzanie certyfikatów, użytkownicy i uprawnienia Service Broker zabezpieczenia transportu. Aby uzyskać więcej informacji zobacz usługa Broker Transport Security.