Udostępnij za pośrednictwem


Przechowywania wiadomości

Podczas przechowywania wiadomości określa kolejkę Service Broker nie powoduje usunięcia wiadomości z kolejki do czasu zakończenia konwersacji.Ponadto Service Broker również kopiuje wychodzących wiadomości do kolejki.Dzięki temu usługa utrzymać dokładne rekordu wiadomości przychodzących i wychodzących.

Przechowywania wiadomości pozwala zachować dokładną rekordu konwersacji dla kolejki, podczas konwersacji jest aktywny.Dla aplikacji, które wymagają szczegółowych inspekcji lub które należy wykonać kompensacyjnych transakcji, podczas konwersacji nie powiedzie się może to być wygodniejsze niż kopiowanie wiadomości do tabela stanu w trakcie konwersacji.

Komunikat retencji zwiększa liczbę wiadomości w kolejce dla aktywnej konwersacji i zwiększa ilość pracy SQL Server wykonuje podczas wysyłania wiadomości.Dlatego przechowywania wiadomości zmniejsza wydajność.Wpływ na wydajność dokładne zależy od wzorców komunikacyjnych dla usług, które korzystają z kolejki.Ogólnie rzecz biorąc, należy użyć przechowywania wiadomości wszelkie czas że przechowywania wiadomości jest wymagany do prawidłowego działania aplikacji.Jeśli aplikacja wymaga dokładnego rekord wszystkich wysłanych i odebranych wiadomości, podczas konwersacji jest aktywny, utrzymanie stanu w tabela Państwo może zwiększyć wydajność.Pamiętaj, że po zakończeniu rozmowy, zatrzymanych wiadomości są usuwane z kolejki, jeśli używasz retencji dla celów inspekcji, należy skopiować wiadomości do stałego składowania przed zakończeniem konwersacji.

Ostrzeżenie

Korzystanie z przechowywania wiadomości może zmniejszyć wydajność.To ustawienie można używać tylko, jeśli aplikacja usługa-poziomu Porozumienie wymaga, że aplikacja zachowują dokładne wiadomości wysłanych i odebranych.

Wiadomości w kolejce, które są gotowe do przyjęcia mają status 1.Instrukcja ODBIERZ zwraca komunikaty pokazujące stan 1.Po instrukcja ODBIERZ zwraca komunikat, ustawia stan 0 i pozostawia wiadomości w kolejce, jeśli przechowywania wiadomości.Jeśli przechowywania wiadomości jest wyłączone, instrukcja ODBIERZ usuwa wiadomości z kolejki.usługa używającej kolejki zapisuje wiadomości wychodzącej i przychodzącej.W takim przypadek WYSYŁA polecenie kopiuje wiadomości do kolejki usługa (z stanu z 3) jak również dodanie wiadomości do kolejki transmisji.Po zakończeniu rozmowy, kolejki usuwa wszystkie wiadomości w konwersacji.

Aplikacja nie może odbierać dwukrotnie tę samą wiadomość i aplikacji nie może odbierać wiadomości, które zostało dodane do kolejki wiadomości wychodzących.Aby pracować z zachowaną wiadomości, instrukcja SELECT służy do kwerendy kolejki.Inspekcji, aplikacja wstawia zatrzymanych wiadomości do tabela programu inspekcji przed zakończeniem konwersacji.Kompensacji z transakcji aplikacji zwykle działa wstecz za pośrednictwem wiadomości przetworzonych i cofa pracy dla każdej wiadomości, dopóki nie zostaną przetworzone wszystkie wiadomości.

Więcej informacji na temat dostępu do kolejki przy użyciu instrukcji SELECT, zobacz Kwerenda kolejek.