Komunikaty systemowe Broker

Service Brokerużywa trzy typy komunikatów systemu do przekazywania informacji o stanie i błędach z Service Broker.

Obsługa komunikatów systemowych

Większość wiadomości w Service Broker konwersacji są zdefiniowane przez aplikację wiadomości, używane do komunikacji między usługami.Każda wiadomość musi być zgodne z formatu typ komunikatu, zdefiniowanego utworzyć WIADOMOŚĆ typu instrukcja.Zestaw typów wiadomości dozwolonych dla konwersacji jest zdefiniowany przez kontrakt określoną w instrukcja rozpocząć KONWERSACJĘ okna DIALOGOWEGO.

Oprócz typy wiadomości przez aplikację, określone w kontrakt, rozmowy może również odbierać wiadomości, które należy użyć jednej z trzech typów zdefiniowanych przez system wiadomości.Typy wiadomości te są używane przez Service Broker Raportowanie błędów i stan okien dialogowych.Każdy wniosek musi zawierać logiki do obsługi komunikatów o błędach i okno dialogowe Koniec wiadomości.If the application sets a conversation timer on a dialog conversation, the application must contain logic to handle Dialog Timer messages.Service Broker provides these message types to every service, whether they appear in the contract for the service or not.Aby uzyskać więcej informacji, zobacz Obsługa komunikatów o błędach Service Broker.

Komunikaty o błędach

Usługa zdalnego dialog z błąd lub lokalnym broker wykrywa nieodwracalny błąd w oknie dialogowym, lokalne broker tworzy komunikat o błędzie.Komunikaty o błędach są typ komunikatu **https://schemas.microsoft.com/SQL/ServiceBroker/Error**.Komunikaty o błędach są zatwierdzane jako poprawnie sformułowany kod XML.

Dokument XML, zawarte w komunikacie o błędzie używa obszaru nazw **https://schemas.microsoft.com/SQL/ServiceBroker**.Element główny dokumentu ma nazwę lokalnego Błądi zawiera element o nazwie kodu oraz elementu o nazwie komunikat.Kodu element posiada wartość całkowitą.Komunikat element zawiera tekst czytelny dla człowieka wiadomości.

Na przykład komunikat wygenerowany przez usługa przetwarzania raportów wydatków może zawierać następujące XML (przekształcony dla czytelności):

<?xml version="1.0"?>
<Error xmlns="https://schemas.microsoft.com/SQL/ServiceBroker">
  <Code>12</Code>
  <Description>
    Unknown cost center "127-1000". Please check the cost center list
    and resubmit the report.
  </Description>
</Error>

Operacja odbierania odbiera komunikat o błędzie przed wiadomości dla tego okna dialogowego innych niż komunikat okna dialogowego czasomierza.Ten problem występuje niezależnie od kolejności, w którym odebrano komunikat o błędzie w kolejce.Jeśli kolejka czasomierza komunikat okna dialogowego i komunikat o błędzie, operacji odbioru odbiera komunikat czasomierza okno dialogowe przed komunikat o błędzie.

Po odebraniu komunikatu o błędzie dla okna dialogowego, brokera zgłasza błąd, jeżeli aplikacja próbuje wysłać wiadomość w tym oknie dialogowym.Jednak aplikacji mogą odbierać komunikaty pozostałych do okna dialogowego nawet po odebraniu komunikatu o błędzie.

Koniec okna dialogowego wiadomości

Kiedy aplikacji kończy się okno dialogowe bez określania błąd, lokalne brokera wysyła komunikat końcowy w oknie dialogowym do broker zdalnego.Koniec okna dialogowego wiadomości są typ komunikatu https://schemas.microsoft.com/SQL/ServiceBroker/EndDialog.

Koniec okna dialogowego wiadomości są wiadomościami puste.Operacja odbierania odbiera komunikat końcowy w oknie dialogowym w celu odebrania wiadomości w kolejce.

Okno dialogowe czasomierza wiadomości

Okno dialogowe czasomierza komunikaty wskazują wygasł czasomierz konwersacji w oknie dialogowym.Te komunikaty są typ komunikatu **https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimer**.Czasomierz konwersacji jest specyficzne dla jednej stronie konwersacji; Service Brokernigdy nie wysyła wiadomość czasomierza okna dialogowego do drugiej stronie konwersacji.

Okno dialogowe czasomierza wiadomości są wiadomościami puste.Okno dialogowe odbiera operacji odbioru czasr wiadomości przed innych wiadomości dla tego okna dialogowego, niezależnie od kolejności, w jakiej czas-komunikat Odebrano kolejka.