Udostępnij za pośrednictwem


Okno dialogowe rozmowy

Wszystkie wiadomości wysłane przez Service Broker należą do konwersacji. Okno dialogowe jest konwersację między dwie usługi.Okno dialogowe jest dwukierunkowe niezawodnych i trwałe strumienia wiadomości między dwie usługi.

Okna dialogowe zapewnia dostarczanie wiadomości (EOIO) dokładnie-tylko raz — w prawidłowej kolejności.Okna dialogowe za pomocą konwersacji identyfikator i sekwencji numery które są zawarte w każdej wiadomości do identyfikowania wiadomości pokrewne i dostarczania wiadomości, w odpowiedniej kolejności.Okno dialogowe jest niezawodne i trwałe strumienia wiadomości między dwie usługi.

Konwersacja okno dialogowe ma dwa uczestników.The initiator starts the conversation.The miejsce docelowe accepts a conversation begun by the initiator.Określa, czy uczestnika rozpoczyna konwersację wiadomości, które uczestnik może wysyłać, jak określono w umowie o konwersacji.Poniższy diagram przedstawia przepływ komunikatów z okna dialogowego:

Message flow between initiator and target

Aplikacje wymiany wiadomości jako część okna dialogowego.Kiedy SQL Server odbiera wiadomości dla okna dialogowego, SQL Server Umieszcza wiadomość w kolejce do okna dialogowego. Aplikacja odbiera wiadomość z kolejki i przetwarza wiadomość, jeżeli jest to konieczne.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ń oszczędność czas i zasobów przez nadanie mu konieczne w przypadku aplikacja jawnie potwierdzić każdej wiadomości.W miarę możliwości potwierdzenia wiadomości są dołączone jako część komunikatów zwrotnych do okna dialogowego.

Uwaga

Service Broker obsługuje komunikatów potwierdzenia wewnętrznie.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 do stają się niedostępne.Kiedy jest nieosiągalny, usługa zdalnego Service Broker przechowuje wiadomości dla tej usługi, aż do chwili, kiedy usługa staje się niedostępne lub upływa okres istnienia, w oknie dialogowym.

Okres, w oknie dialogowym

Wiadomości mogą być wymieniane między aplikacjami w czasie użytkowania w oknie dialogowym.Okres istnienia okno dialogowe ma trwać od czas, lokalny SQL Server wystąpienie tworzy okna dialogowego, aż do chwili, kiedy aplikacja albo jawnie kończy się w oknie dialogowym lub odbiera komunikat o błędzie skojarzony z okna dialogowego. Każdy uczestnik jest odpowiedzialny za jawnie Kończenie konwersacji, gdy aplikacja odbiera komunikat informujący o błąd lub na końcu konwersacji.W większości usług jednego uczestnik jest odpowiedzialny za co oznacza, że konwersacji pełne i pomyślne przez kończenie konwersacji bez błędu.Czy jest to realizowane przez obiekt miejsce docelowe i inicjator zależy od celu konwersacji.

Lokalny Service Broker dla aplikacji inicjujący tworzy punkt końcowy konwersacji do okna dialogowego podczas uruchamiania aplikacji okna dialogowego. Lokalny Service Broker dla miejsce docelowe aplikacja tworzy punkt końcowy konwersacji do okna dialogowego po wystąpieniu odebraniu pierwszej wiadomości w oknie dialogowym.

Okna dialogowe można także zagwarantować, że okres istnienia konwersacji nie przekracza określonego limitu.Inicjujący aplikacji można opcjonalnie określić maksymalny okres istnienia dla okna dialogowego.Zarówno lokalnych Service Broker i zdalnego Service Broker przechowywania informacji o tym okres istnienia. Gdy okno dialogowe pozostaje aktywna na maksymalny okres istnienia, po obu stronach konwersacji komunikat o błędzie limitu czas są umieszczane w kolejce Usługa i odmawia nowych wiadomości do okna dialogowego.Rozmowy na żywo nigdy nie poza maksymalny okres istnienia jest ustanawiane, gdy rozpoczyna się w oknie dialogowym.Należy zauważyć, że w czasie, gdy aplikacja nadal mogą odbierać wiadomości w konwersacji od zakończenia konwersacji, nie przychodzą nowe wiadomości mogą dla czy konwersacji aplikacji nie mogą 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 się do konwersacji.W związku z tym nawet jeżeli limit czasu okna dialogowego lub brokera zgłasza błąd, każdego uczestnik konwersacji musi wyraźnie wystawić instrukcja END KONWERSACJI.

Czasomierz konwersacji

A konwersacji czas r pozwala aplikacjom do odbierania wiadomości w określonym czas.Po wygaśnięciu czasomierza konwersacji SQL Server Wstawia wiadomości w konwersacji w kolejce do konwersacji, w punkcie końcowym uruchomienia czasomierza konwersacji. Jedna aplikacja może korzystać z zegarem konwersacji w dowolnym celu.Jest jednym z typowych zastosowań czasomierza konwersacji odpowiedzieć na opóźnienia w odpowiedzi ze zdalnej usługa.Inne typowe zastosowanie polega na utworzeniu usługa, która wysyła wiadomości do zdalnej usługi odstępach zestaw.Na przykład usługa może używać czasomierza konwersacji w bieżącym stanie SQL Server co kilka minut. Aplikacje można użyć konwersacji czas r uaktywnić procedury przechowywanej na określony czas.Dzięki temu Service Broker Aby obsługiwać zaplanowanych działań.

Każdego uczestnik konwersacji zestaw jeden czasomierza konwersacji na konwersacji.Czasomierz konwersacji nie jest udostępniany z innego uczestnik, a czasomierz konwersacji nie wpływa na okres istnienia konwersacji.Zamiast tego, gdy czasomierz wygasa, lokalnego Service Broker dodaje wiadomości limit kolejki dla lokalnej usługa. Komunikat limit czas ma nazwę typu https://schemas.Microsoft.com/SQL/ServiceBroker/DialogTimer