Okno dialogowe konwersacji
Wszystkie wiadomości wysłane przez Service Broker są częścią konwersacji.Okno dialogowe jest konwersację między dwiema usługami.Okno dialogowe jest niezawodne, trwałe dwukierunkowy strumienia wiadomości między dwiema usługami.
Okna dialogowe zawierają dokładnie once-dostarczenie w prawidłowej kolejności (EOIO) wiadomości.Konwersacji identyfikator i sekwencji liczb znajdujących się w każdej wiadomości do identyfikowania wiadomości pokrewne i dostarczanie w prawidłowej kolejności wiadomości za pomocą okien dialogowych.Okno dialogowe jest niezawodne, trwałe strumienia wiadomości między dwiema usługami.
Konwersacja okno dialogowe ma dwóch uczestników.Inicjatora uruchamia konwersacji.miejsce docelowe akceptuje konwersacji rozpoczęte przez inicjatora.Określa, czy uczestnik rozpoczyna konwersację wiadomości, które uczestnik może wysyłać, jak określono w kontrakt do konwersacji.Poniższy diagram przedstawia przepływ komunikat okna dialogowego:
Aplikacje wymiany wiadomości jako część okna dialogowego.Gdy SQL Server odbiera komunikat w oknie dialogowym, SQL Server umieszcza wiadomość w kolejce dla okna dialogowego.Aplikacja odbiera wiadomość z kolejki i przetwarza wiadomości w razie potrzeby.Jako część przetwarzania aplikacja może wysyłać wiadomości do innych uczestnik w oknie dialogowym.
Niezawodne dostarczanie
Dialogs incorporate automatic message receipt acknowledgements to ensure reliable delivery.Service Broker saves each outgoing message in the transmission queue until the message is acknowledged by the remote service.Te automatyczne potwierdzeń zaoszczędzić czas i zasoby, dokonując niepotrzebne aplikacji wyraźnie potwierdzić każdej wiadomości.W miarę możliwości, wiadomości potwierdzenia są częścią zwrotu wiadomości do okna dialogowego.
Ostrzeżenie
Service Broker wewnętrznie obsługi komunikatów potwierdzenia.Te komunikaty nie są wyświetlane w kolejce i nie są dostarczane do aplikacji.
Service Broker nie uważa się błąd usługa zdalnego stają się niedostępne.Gdy usługa zdalnego jest nieosiągalny, Service Broker przechowuje wiadomości dla tej usługi, aż usługa stanie się osiągalny lub wygasa okres istnienia okna dialogowego.
Okno dialogowe okres istnienia
Wiadomości można wymieniane między aplikacjami w okresie istnienia okna dialogowego.Życiaczas z okna dialogowego trwa od czas , lokalnym SQL Server wystąpienie tworzy okna dialogowego, aż aplikacja jawnie kończy się w oknie dialogowym albo komunikat o błędzie skojarzony z okna dialogowego.Każdy uczestnik jest odpowiedzialny za jawnie Kończenie konwersacji, gdy aplikacja odbiera wiadomość, która wskazuje błąd lub końca konwersacji.W większości usług jeden uczestnik jest odpowiedzialny za wskazujące, że konwersacji jest kompletne i pomyślne przez kończenie konwersacji bez błędów.Czy jest to realizowane przez obiekt miejsce docelowe lub inicjatora, zależy od celu konwersacji.
Lokalnym Service Broker dla aplikacji inicjującej tworzy punkt końcowy konwersacji dla okna dialogowego podczas uruchamiania aplikacji okno dialogowe.Lokalnym Service Broker dla miejsce docelowe aplikacja tworzy punkt końcowy konwersacji dla okna dialogowego podczas wystąpienie odbiera pierwszej wiadomości w oknie dialogowym.
Okna dialogowe można również zagwarantować istnienia konwersacji nie przekracza określonego limitu.Aplikacji inicjującej można opcjonalnie określić maksymalny okres istnienia dla okna dialogowego.Zarówno lokalnych Service Broker i zdalnego Service Broker zachować o okres istnienia.Gdy okno dialogowe pozostaje aktywna na maksymalny okresczas, umieszcza na każdej stronie konwersacji czas-komunikat o błędzie na kolejkę serwisowych i odmawia nowych wiadomości do okna dialogowego.Konwersacje nigdy live poza maksymalny okres istnienia jest ustanawiane, gdy zostanie uruchomiony w oknie dialogowym.Należy zauważyć, gdy aplikacja nadal mogą odbierać wiadomości w konwersacji od zakończenia konwersacji, nie przychodzą nowe wiadomości można dla że konwersacji aplikacji nie można wysyłać wiadomości o konwersacji.
Applications are responsible for indicating when they are finished with a dialog by explicitly ending the dialog.Service Broker never ends a dialog automatically.Okno dialogowe pozostaje w bazie danych, dopóki aplikacja jawnie kończy konwersacji.Dlatego, nawet gdy limit czasu okna dialogowego lub brokera zgłasza błąd, każdego uczestnik konwersacji musi wyraźnie wystawić KONWERSACJI koniec instrukcja.
Czasomierz konwersacji
A konwersacji czasr umożliwia aplikacji komunikat na określonym czas.Po wygaśnięciu czasomierza konwersacji, SQL Server wstawia wiadomości w konwersacji w kolejce dla konwersacji w punkcie końcowym, który uruchomił czasomierza konwersacji.Aplikacja może używać czasomierza konwersacji w dowolnym celu.Jednym z typowych zastosowań czasomierza konwersacji jest odpowiedzieć na opóźnienia w odpowiedzi ze zdalnej usługa.Innym typowym zastosowaniem jest utworzenie usługa, która wysyła wiadomości do zdalnej usługi w zestaw odstępach czasu.Na przykład usługa może używać czasomierza konwersacji na bieżący stan SQL Server co kilka minut.Aplikacje mogą również korzystać z konwersacji czasr, aby uaktywnić procedura składowana w niektórych czas.Dzięki temu Service Broker do obsługi zaplanowanych działań.
Każdy uczestnik konwersacji zestaw jeden czasomierza konwersacji na konwersacji.Czasomierz konwersacji nie są współużytkowane z innymi uczestnik, a czasomierz konwersacji nie narusza ważności konwersacji.Zamiast tego, kiedy czasr wygasa lokalnym Service Broker dodaje czas-komunikat w kolejce dla lokalnej usługa.A czas-komunikat ma nazwę typu https://schemas.microsoft.com/SQL/ServiceBroker/Dialogczasr