Udostępnij za pośrednictwem


Transakcyjna obsługa wiadomości

Fundacja Service Broker model programowania jest transakcyjna obsługa wiadomości.Wszelkie działania, które obejmuje Service Broker jest częścią bieżącej transakcji.Service Broker nie zatwierdzanie obsługi operacji, dopóki zatwierdza bieżącej zatwierdzanie.Jeśli transakcja wycofuje, Aparat baz danych gwarantuje, że wszystkie operacje, które również są częścią transakcji messaging wycofać.Aplikacją zarządza operacjami wiadomości jako część zarządzanie SQL Server transakcji.

Na przykład gdy program wysyła wiadomości w obrębie transakcji, Service Broker nie wysyła wiadomości za pośrednictwem sieci aż program zatwierdza transakcję.Gdy program odbiera wiadomości w obrębie transakcji, Aparat baz danych nie trwale usunąć wiadomości z kolejki, dopóki program zatwierdzeniu transakcji.

Transakcyjna obsługa wiadomości pomaga pisać niezawodne i skalowalne aplikacje poprzez zapewnienie, że stan bazy danych pozostaje zgodny ze stanem kolejek.Gdy aplikacja dokona zmian w bazie danych i wysyła lub odbiera wiadomość, zmian do bazy danych oraz obsługi operacji są częścią tej samej transakcji.Jeśli transakcja wycofuje, zmiany do bazy danych oraz obsługi operacji wycofać.Obie operacje kończą się pomyślnie, lub obie operacje kończą się niepowodzeniem.W modelu Service 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, pisania aplikacji tak, aby wiadomości operacje występują w tej samej transakcji jako operacje bazy danych, które reprezentują wiadomości.Na przykład aplikacja przetwarza zamówienia odbiera wiadomości dla zamówienia i aktualizuje bazę danych z zamówieniem w pojedynczej transakcji.

Jeśli aplikacja zamiast odbiera wiadomości w jednej transakcji i aktualizuje bazę danych w różnych transakcji, niepowodzenia aktualizacji bazy danych tworzy sytuacji, gdy wiadomość już nie istnieje, ale zmiana żądanej wiadomości nie miało miejsce.przypadek aplikacji nie korzystać z jednego z głównych korzyści, które zapewnia Service Broker.W szczególności Service Broker gwarantuje, że wszystkie wiadomości są dostarczane tylko raz, w kolejności, inaczej wiadomości nadawcy jest powiadamiany Service Broker komunikat o błędzie.Aplikacja trwale usuwa wiadomości z kolejki, ale nie może przetworzyć wiadomości, jak w poniższym przykładzie podziałów gwarancji.Bez gwarancji wniosek musi zawierać dodatkowy kod obsługi możliwych niespójności lub ryzyko niepoprawnych wyniki.

Gdy aplikacja przetwarza wiadomości i nie wprowadza żadnych zmian do bazy danych, posiada gwarancję.Wiadomości zostały przetworzone pomyślnie.Aplikacja używająca Service Broker mogą wybrać ignorowanie wiadomości, ale aplikacja nie może przypadkowo utracić wiadomości, nawet w przypadkach, gdy aplikacja utraci łączność z bazą danych lub jest nieoczekiwanie zamykany.