Grupy konwersacji
grupa konwersacji identyfikuje grupę powiązanych konwersacji.grupa konwersacji pozwala aplikacjom łatwo skoordynować konwersacji biorących udział w zadaniu konkretnej firmy.
Każdej konwersacji należy do jednej grupa konwersacji.Każda grupa konwersacji jest skojarzona z określoną usługa, a wszystkie konwersacje w grupie są konwersacji lub z tej usługa.Grupa konwersacji może zawierać dowolną liczbę konwersacji.
SQL Server dokładnie jeden raz w — zlecenie (EOIO) dostępu do wiadomości, które są związane z zadaniem firmy przy użyciu grupy konwersacji.Gdy aplikacja wysyła lub odbiera wiadomość, SQL Server Blokuje grupa konwersacji, do której należy dany komunikat. W ten sposób tylko jedną sesja w danej chwili może odbierać wiadomości dla grupa konwersacji.Blokada grupa konwersacji gwarantuje, że aplikacja może przetwarzać wiadomości w każdej konwersacji tylko raz w kolejności (EOIO).grupa konwersacji może zawierać więcej niż jednej konwersacji, aplikacji służy do identyfikowania wiadomości związanych z tego samego zadania biznesowe konwersacji grup oraz razem przetwarzania tych wiadomości.
grupa konwersacji jest współużytkowane przez uczestników w konwersacji.W związku z tym każdego uczestnik konwersacji jest prawo do tej konwersacji odpowiednie grupy.Aplikacja może zarządzać złożonych wzajemnych zależności między usługami bez żadnych specjalnych pomocy technicznej z usług.
Przykłady grup konwersacji
Może być aplikacją zasobów ludzkich GetEmployeeInformation usługa, która łączy informacje z usługi listy płac i informacji z usługi korzyści.The GetEmployeeInformation usługa begins a conversation with each usługa, and relates one conversation to the other in the same grupa konwersacji.usługa Broker dodaje identyfikator grupa konwersacji z każdym wiadomość przychodząca w tych dwóch konwersacji, niezależnie od tego, czy odebraniu wiadomości przez usługa listy płac lub świadczenia usług.Ponieważ konwersacji znajdują się w tej samej grupa konwersacji, Service Broker zawiera wszystkie informacje niezbędne do GetEmployeeInformation Usługa odpowiada informacji korzyści z informacjami listy płac, niezależnie od tego, ile żądań są wykonywane w GetEmployeeInformation usługi.
Wiadomości w usłudze listy płac i wiadomości do świadczenia usług nie zawierają informacji o grupach konwersacji dla grupa konwersacji, utworzony przez GetEmployeeInformation.Każda usługa działa niezależnie i tylko GetEmployeeInformation Usługa przechowuje informacje o zadaniu całej firmy.Utrzymywanie usług od siebie niezależne pomaga należy każdej usługa proste do kodu i łatwe do zachowania.Inną zaletą do utrzymania tę niezależność jest to, że jeśli jedna usługa jest niedostępna, inne usługi mogą w dalszym ciągu działać.
Organizowanie Państwo aplikacji
Jedna korzyść grupa konwersacji jest to, że identyfikator grupa konwersacji jest wygodne klucz do identyfikowania i Pobierz stan aplikacji.Identyfikator grupa konwersacji ułatwia utrzymanie aplikacji w bazie danych.Jeśli wykonasz zadania polega na wymianie wiele komunikatów za pośrednictwem czas, jest nieefektywne, aby zachować wystąpienie uruchamianie aplikacji tak, aby utrzymać stan aplikacji.Aplikacja skaluje lepiej, jeżeli między wiadomości, wszelkie dane skojarzone z zadaniem jest przechowywany w bazie danych, a następnie jest pobierana po otrzymaniu następnej wiadomości skojarzonych z tym zadaniem.Identyfikator grupa konwersacji może służyć jako klucz podstawowy tabela stan dostarczone przez Twórca aplikacji, aby umożliwić szybkie pobieranie stanu skojarzonego z określonym zadaniem.Aby uzyskać więcej informacji na temat przy użyciu identyfikatora grupa konwersacji, aby utrzymać stan zobacz Stan zarządzania.
Ponieważ SQL Server Blokuje grupę konwersacji każdy czas aplikacja wysyła lub odbiera wiadomość, aplikacja nie musi być jawnie zapobiec inny program aktualizuje te same dane o stanie w tym samym czas. Stosowanie po prostu blokuje grupa konwersacji, przywraca stan, przetwarza wiadomości, aktualizuje stan i następnie zatwierdza transakcję.
Dla wygody SQL Server pozwala aplikacjom blokada następnej grupa konwersacji dostępne bez otrzymania wiadomości. Za pomocą instrukcja GET GROUP KONWERSACJI, aplikację można zablokować grupa konwersacji i przywrócenia stanu przed przetworzeniem wiadomości.Zobacz GET KONWERSACJI GROUP (języka Transact-SQL) Instrukcja, aby uzyskać szczegółowe informacje.
Okres istnienia grupa konwersacji
usługa Broker zarządza okres istnienia grupa konwersacji.Nie trzeba jawnie tworzenia lub usuwania grupa konwersacji.usługa Broker tworzy nową grupa konwersacji w następujących okolicznościach:
Aplikacja rozpoczyna się nowa konwersacji, które nie są związane z istniejącą grupą konwersacji.usługa Broker tworzy nową grupa konwersacji i przypisuje nowy identyfikator grupa konwersacji.
Aplikacja rozpoczyna konwersację powiązany identyfikator grupa konwersacji, które obecnie nie istnieje.W takim przypadek usługa Broker tworzy nową grupa konwersacji z określonym identyfikatorem.Oznacza to, że można przypisać własne wartości identyfikatora grupa konwersacji.
usługa Broker przechodzi do pierwszej wiadomości w konwersacji nowych uruchomiony przez inną usługa.W takim przypadek usługa Broker używa nazwy usługa i brokera identyfikatora wystąpienie (jeśli istnieje) należy wykonać następujące czynności:
Zlokalizuj odpowiedniej kolejki.
Tworzenie nowej grupa konwersacji i skojarzyć grupa konwersacji z kolejki.
Utwórz nowy uchwyt konwersacji i Dodaj uchwyt konwersacji do nowej grupa konwersacji.
Umieść wiadomości przychodzącej do kolejki.
usługa Broker dodaje identyfikator grupa konwersacji metadane dla konwersacji, które utworzone grupa konwersacji.Za każdym razem, gdy usługa Broker odbiera wiadomości konwersacji skojarzone z grupą konwersacji, usługa Broker dodaje identyfikator grupa konwersacji na tę wiadomość, przed wprowadzeniem tej wiadomości w kolejce.
Identyfikator grupy do konwersacji jest ważna od usługi czas Broker tworzy go do wszystkich konwersacji skojarzonych z tym identyfikator; oznacza to, identyfikator grupa konwersacji jest gwarantowane, że jest ważne, gdy wszystkie konwersacji w grupie jest aktywny.
Aplikacja, która używa identyfikatora grupa konwersacji do zarządzania stanem aplikacji używa tabela stan dostarczone przez projektanta.Aplikacja musi usunąć tym stanie z tabela stanu wtedy, gdy aplikacja określa, że stan nie jest już konieczne.W wielu przypadkach zastosowanie usuwa stanu po pomyślnym zakończeniu zadania lub po błędy wskazują, że nie można ukończyć zadania.W takich przypadkach aplikacja zazwyczaj zawiera polecenie, aby usunąć stan w obrębie transakcji, która wysyła komunikat ostatecznej odpowiedzi, a kończy się do konwersacji.Strategia ta gwarantuje, że stan aplikacji i identyfikator grupa konwersacji ten sam okres istnienia.Jeśli operacja wysyłania nie powiedzie się, operacja usuwania toczy się ponownie.Podobnie, jeżeli operacja usuwania nie powiedzie się, operację wysyłania powoduje powrót i SQL Server nie powoduje wysłania wiadomości. W obu przypadkach stan aplikacji i identyfikator grupa konwersacji są ważne.Jeśli obie operacje kończą się pomyślnie, następnie okres istnienia identyfikator grupa konwersacji kończy się w tym samym czasie, że program usunie stan skojarzonej aplikacji.