Udostępnij za pośrednictwem


Grupy konwersacji

grupa konwersacji identyfikuje grupę powiązanych konwersacji.grupa konwersacji pozwala aplikacjom łatwo skoordynować konwersacji zaangażowanych w zadaniu firmy.

Konwersacji, co należy do jednej grupa konwersacji.Każda grupa konwersacji jest skojarzony z określoną usługa i wszystkie konwersacje w grupie są konwersacji lub z tej usługa.Grupa konwersacji może zawierać dowolną liczbę konwersacji.

SQL Server używa konwersacji grup do udostępnienia dokładnie once w prawidłowej kolejności (EOIO) wiadomości, które są związane z zadaniem firmy.Gdy aplikacja wysyła lub odbiera wiadomość, SQL Server grupa konwersacji, do której należy wiadomość blokuje.W ten sposób tylko jednej sesji czas mogą odbierać wiadomości dla grupa konwersacji.grupa konwersacji blokada gwarancji, że aplikacja może przetwarzać wiadomości na każdą konwersację tylko raz w kolejności (EOIO).Ponieważ grupa konwersacji mogą zawierać więcej niż jednej konwersacji, aplikacji można grupa konwersacji służą do identyfikowania wiadomości związane z tego samego zadania biznesowe i przetwarzania tych wiadomości razem.

grupa konwersacji nie jest udostępniony między uczestnikami w konwersacji.Dlatego każdy uczestnik konwersacji jest bezpłatne tej konwersacji odpowiednie grupy.Aplikację można zarządzać złożonych oddziaływań wzajemnych między usługi bez konieczności wszelkie specjalne wsparcie z usług.

Przykłady grup konwersacji

Aplikacja zasobów ludzkich może mieć GetEmployeeInformation usługa, która łączy informacje z usługa płac i z usługa korzyści.GetEmployeeInformation Usługa rozpoczyna konwersację z każdej usługi i dotyczy jednej konwersacji na inne w tej samej grupa konwersacji.Service Broker dodaje identyfikator grupa konwersacji z każdym wiadomość przychodząca na konwersacje te dwa, niezależnie od tego, czy wiadomość dociera z korzyści lub usługa listy płac.Ponieważ konwersacje są w tej samej grupa konwersacji, usługa Broker zawiera wszystkie informacje niezbędne do GetEmployeeInformation usługa zgodne z informacjami korzyści informacji listy płac, niezależnie od tego, ile żądań są wykonywane w GetEmployeeInformation usługa.

Komunikaty usługa płac i komunikaty do świadczenia usługa nie zawierają informacji grupa konwersacji grupa konwersacji, utworzony przez GetEmployeeInformation.Każda usługa działa niezależnie i wyłącznie GetEmployeeInformation Usługa przechowuje informacje o zadaniu całej działalności.Utrzymywanie usług od siebie niezależne pomaga należy każdej usługa simple kodu i łatwa w obsłudze.Inną zaletą do utrzymania niezależności, to jest, że jeśli jedna usługa jest niedostępna, inne usługi będą działać.

Organizowanie stan aplikacji

Korzyścią grupa konwersacji jest identyfikator grupa konwersacji wygodne klucz do identyfikowania i Pobierz stan aplikacji.Identyfikator grupa konwersacji można łatwo zachowują stan aplikacji bazy danych.Jeśli wykonywanie określonych zadań obejmuje wymianę wielu wiadomości przez czas, jest nieefektywne zachować wystąpienie aplikacji działającej tak, aby utrzymać stan aplikacji.Aplikacja skaluje lepiej, jeśli między wiadomości, wszelkie dane skojarzone z zadaniem jest przechowywany w bazie danych, a następnie jest pobierana po otrzymaniu wiadomości dalej skojarzonego z tym zadaniem.Identyfikator grupa konwersacji może służyć jako klucz podstawowy tabela stan dostarczone przez dewelopera aplikacji umożliwiające szybkie pobieranie stanu skojarzonego z określonym zadaniem.Aby uzyskać więcej informacji dotyczących utrzymywania stanu przy użyciu identyfikatora grupa konwersacji, zobacz Zarządzanie stanem.

Ponieważ SQL Server blokuje grupy konwersacji każdego czas aplikacja wysyła lub odbiera wiadomość, aplikacja nie musi jawnie zapobiec inny program aktualizuje te same dane Państwo, w tym samym czas.Aplikacja 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 grupa konwersacji, aplikacja może blokada grupa konwersacji i przywracanie stanie przed przetwarzania wiadomości.Zobacz Pobierz KONWERSACJĘ grupy (Transact-SQL) instrukcja szczegóły.

Okres istnienia grupy konwersacji

Service Broker zarządza istnienia grupa konwersacji.Nie trzeba jawnie tworzenia lub niszczenia grupa konwersacji.Service Broker tworzy nową grupa konwersacji w następujących okolicznościach:

  • Aplikacja rozpoczyna nową konwersację, który nie jest związany z istniejącego grupa konwersacji.Service Broker tworzy nową grupa konwersacji i przypisuje nowy identyfikator grupa konwersacji.

  • Aplikacja rozpoczyna konwersację związane z grupa konwersacji identyfikator, który obecnie nie istnieje.W takim przypadek Service Broker tworzy nową grupa konwersacji z określonym identyfikatorem.Oznacza to, że można przypisać własne wartość Identyfikator grupa konwersacji.

  • usługa Brokerodbiera pierwszej wiadomości w konwersacji nowe uruchomiony przez inną usługa.W takim przypadek usługa Broker używa nazwy usługa i identyfikatora wystąpienie broker (jeśli istnieje), wykonaj następujące czynności:

    1. Znajdź odpowiednią kolejkę.

    2. Tworzenie nowej grupa konwersacji i skojarzyć grupa konwersacji z kolejki.

    3. Utwórz nowy dojście do konwersacji i Dodaj dojście do konwersacji do nowej grupa konwersacji.

    4. Miejsce wiadomość przychodząca dla kolejki.

Service Broker dodaje identyfikator grupa konwersacji metadane dla konwersacji, który utworzył grupa konwersacji.Ilekroć Service Broker odbiera wiadomości w konwersacji skojarzone z grupa konwersacji, Service Broker dodaje identyfikator grupa konwersacji wiadomości przed wprowadzeniem wiadomości w kolejce.

Identyfikator grupa konwersacji jest ważny od czas Service Broker tworzy aż wszystkie konwersacje skojarzone z końcem identyfikator; oznacza to, że identyfikator grupa konwersacji zapewniona jest prawidłowe podczas rozmowy w grupie jest aktywny.

Aplikacja, która używa identyfikatora grupa konwersacji do zarządzania stanem aplikacji używa tabela Państwo dostarczonymi przez projektanta.Wniosek należy usunąć tego Państwa z tabela Państwo wtedy, gdy aplikacja określa stan jest już konieczne.W wielu przypadkach aplikacja usuwa Państwo po pomyślnym zakończeniu zadania lub po błędy wskazują, że nie można ukończyć zadanie.W takich przypadkach aplikacja zazwyczaj zawiera polecenie usunięcia stanu w obrębie transakcji, który wysyła komunikat ostatecznej odpowiedzi i kończy konwersacji.Strategia ta stan aplikacji i identyfikator grupa konwersacji mają ten sam okres ważności.W przypadku niepowodzenia operacji wysyłania, operacja usuwania wycofuje.Podobnie, jeśli operacja usuwania nie powiedzie się, operacja wysyłania wycofuje i SQL Server nie wysyła wiadomość.W obu przypadek, stan aplikacji i identyfikator grupa konwersacji pozostają ważne.Jeśli obie operacje pomyślnie, następnie życia identyfikator grupa konwersacjiczas kończy się w tym samym czas że program usuwa skojarzoną aplikację Państwo.