Udostępnij za pośrednictwem


Wiadomości transakcyjne

Podstawą brokera z modelu programowania jest transakcyjna obsługa wiadomości.Wszelkie działania mające związek z usługa Broker jest częścią bieżącej transakcji.usługa Broker nie przekazać wiadomości operacji, aż do bieżącej transakcji zatwierdza.Jeśli transakcja w rolkach, Database Engine gwarantuje, że wszystkie operacje przesyłania wiadomości, które są częścią transakcji także wycofać. Aplikacją zarządza operacjami obsługi wiadomości w ramach zarządzania SQL Server transakcje.

Na przykład gdy program wysyła wiadomości w obrębie transakcji, usługa Broker nie wysyła wiadomości za pośrednictwem sieci, dopóki program zatwierdza transakcję.Kiedy program odbiera wiadomości w obrębie transakcji, Database Engine nie trwale usuwa wiadomości z kolejki, dopóki program zatwierdza transakcję.

Transakcyjna obsługa wiadomości ułatwia pisanie niezawodne i skalowalne aplikacje w celu zapewnienia, że stanu bazy danych jest zgodny ze stanem kolejek.Gdy aplikacja nie dokona zmian w bazie danych i wysyła lub odbiera wiadomość, zmiany w bazie danych i działania obsługi wiadomości są częścią tej samej transakcji.Jeśli transakcja toczy się ponownie, zmiany w bazie danych i działania komunikacji cofnąć.Obie operacje kończą się pomyślnie, lub obu czynności nie powiedzie się.W modelu usługa Broker używa aplikacja transakcyjna obsługa wiadomości gwarantuje, że wiadomości wysłane przez aplikację odzwierciedlają bieżący stan bazy danych.

Aby w pełni korzystać z obsługi wiadomości transakcyjnych, należy napisać aplikacje tak, aby wiadomości operacje występują w tej samej transakcji jako operacje bazy danych, które reprezentują wiadomości.Na przykład aplikacja, która przetwarza zamówienia odbiera wiadomości dla zamówienia i powoduje zaktualizowanie bazy danych zgodnie z kolejnością, w ramach pojedynczej transakcji.

Jeśli aplikacji zamiast odbiera wiadomości w jednej transakcji i aktualizuje bazę danych w różnych transakcji, niepowodzenia aktualizacji bazy danych tworzy sytuacji, gdy wiadomość nie jest już istnieje, ale umieścić zmian, które nie miało żądanej wiadomości.W tym przypadek aplikacja nie korzystać z jedną z głównych korzyści, które zawiera usługa Broker.W szczególności usługa Broker gwarantuje, że wszystkie wiadomości są dostarczane tylko raz, w kolejności, inaczej wiadomości jest powiadamiany nadawcy komunikatem o błędzie usługa Broker.Aplikacja, która trwale usuwa wiadomości z kolejki, ale nie może przetworzyć wiadomości, tak jak w następującym przykładzie powoduje przerwanie gwarancji.Bez gwarancji aplikacja musi zawierać dodatkowy kod do obsługi możliwe niespójności lub uruchamiania ryzyko nieprawidłowe wyniki.

Jeśli aplikacja przetwarza wiadomości i nie wprowadza żadnych zmian w bazie danych, przechowuje gwarancji.Wiadomość została pomyślnie przetworzona.Aplikacja, która używa usługa Broker można je zignorować komunikat, ale aplikacja nie musi przypadkowo utracone wiadomości, nawet w przypadkach, gdy aplikacja straci połączenie z bazą danych lub jest nieoczekiwanie zamykany.