Udostępnij za pośrednictwem


Rozwiązywanie problemów z priorytetów konwersacji

W tym temacie podano sugestie dotyczące poprawiania typowe objawy związane z Service Broker priorytety konwersacji.

Technika: Określanie, czy HONOR_BROKER_PRIORITY jest włączone.

Use the sys.databasesis_broker_priority_honored column to determine the state of the HONOR_BROKER_PRIORITY database option:

SELECT name AS database_name,
       CASE is_broker_priority_honored
            WHEN 0 THEN N'OFF'
            WHEN 1 THEN N'ON'
       END AS is_broker_priority_honored
FROM sys.databases
ORDER BY database_name;

Symptom: Wiadomości są nie wysłane w sekwencji priorytet

Otwórz SQL Server Profiler śledzenie i Przejrzyj zdarzenia Broker zdalnego potwierdzenia wiadomości. Wartość 1 w StarvationElevation kolumna wskazuje, został pełnymi priorytet wiadomości, aby uniknąć zablokowania.Wartość 0 w HonorBokerPriority kolumna wskazuje, opcja HONOR_BROKER_PRIORITY nie zostało włączone wysyłanie bazy danych.

Również sprawdzić liczników Monitora systemu Broker/DBM transportu w celu wyświetlenia szybkość przesyłania danych dla wiadomości z różnych poziomów priorytetu.

Symptom: Wiadomości nie są odebrane w sekwencji priorytet

Instrukcja przyjęcie pobiera tylko wiadomości z jednej grupa konwersacji.To nie otrzymają wiadomości z wysokim priorytetem konwersacji jeśli należą do grupy różnych konwersacji.

Instrukcja przyjęcie, który nie ma klauzulę pobiera wiadomości z grupa konwersacji odblokowane najwyższy priorytet.Jeśli grupa konwersacji ma wysoki priorytet i niski priorytet rozmowy, instrukcja przyjęcie może pobierać wiadomości z konwersacji o niskim priorytecie.Taka sytuacja może wystąpić, nawet jeśli kolejka zawiera wiadomości o wysokim priorytecie konwersacji w innych grupach.

Oświadczenie o przyjęcie ma klauzula WHERE, która określa grupa konwersacji pobiera tylko wiadomości z grupy określonej konwersacji.Instrukcja przyjęcie będzie pobierać wiadomości z konwersacji o niskim priorytecie w grupie, niezależnie od poziom priorytetu wiadomości z innych grup konwersacji.

Symptom: Wiadomości nie jest przypisany poziom priorytetu przewidywana

Widok sys.conversation_endpoint , sprawdź, czy punkt końcowy konwersacji została przypisana oczekiwanego priorytet.Jeśli nie, należy użyć sys.conversation_priorites , aby przejrzeć właściwości określonego dla priorytetów konwersacji w bazie danych kontrakt, usługa lokalnej i zdalnej usługa, który jest używany dla punkt końcowy konwersacji.