Udostępnij za pośrednictwem


Opis sortowanie i usługa Broker

usługa Broker jest przeznaczona do powiadomić usługa i aplikacje w przypadkach, w przypadku sortowanie różnych konfiguracji mogą komunikować się łatwo i wydajnie.Baza danych, która obsługuje usługa, która wysyła wiadomość nie może korzystać takie same Sortowanie jako bazy danych, usługa, która odbiera wiadomość.W związku z tym usługa Broker wykorzystuje spójne sortowanie nazwy, niezależnie od sortowanie bazy danych obsługującego usługa.Aby usunąć informacje sortowanie z procesu komunikacji, usługa Broker wykorzystuje porównania bajt po bajcie dopasowania nazw usług, kontrakt nazwy, a typ komunikatu nazwy.Dopasowując nazwy jako sekwencje bajtów usługa Broker upraszcza usług do wymiany wiadomości poprawnie bez dodatkowe obciążenie związane z wymianę informacji sortowanie.

Dopasuj bajt po bajcie jest porównanie binarne, które nie bierze pod uwagę bieżący sortowanie.Z tego powodu wiele usług brokera go znaleźć wygodne postępować zgodnie z zaleceniami w Nadawanie nazw usługa Broker obiektów. Aplikacja, która wynika z poniższymi wskazówkami i traktuje wszystkie nazwy jako wielkość liter powinny działać poprawnie, niezależnie od różnic podczas sortowanie obsługującego usługa miejsce docelowe bazy danych a bazą danych obsługującego usługa inicjujący.

Uwagi dotyczące sortowanie kolejki

Kolejki za pomocą sortowanie spójne niezależnie od domyślnym sortowaniem z SQL Server domyślnym sortowaniem bazy danych, obsługującym kolejkę lub wystąpienie. Jeśli kolejka to miejsce docelowe instrukcja SELECT zawierającej instrukcja łączyć z inną tabelą w bazie danych, takich jak używane do zarządzania stanem, tabela może być wymagane do jawnego określania sortowanie dla porównania.

Na przykład aplikacja, która używa komunikatu zatrzymania może być konieczne w celu zachowania niektóre wiadomości w konwersacji przed zastosowaniem kończy się do konwersacji.Poniżej Transact-SQL Przykładowy kod zapisuje wszystkie komunikaty, dla danej konwersacji, a typ komunikatu nazwa w tabela AuditedMessageTypes.

IF @messageTypeName =
  'https://schemas.microsoft.com/SQL/ServiceBroker/EndDialog'
BEGIN
  INSERT INTO dbo.AuditRecord
    SELECT q.message_type_name, q.message_body
      FROM dbo.ApplicationQueue AS q
        JOIN dbo.AuditedMessageTypes AS am ON
             am.message_type_name = q.message_type_name
             COLLATE Latin1_General_BIN
           AND
             q.conversation_handle = @conversationHandle
   END CONVERSATION @conversationHandle
END

Instrukcja SELECT jawnie określa porównanie binarne o identycznych nazwach typ komunikatu.Ponieważ kolejka nie używa domyślnie sortowanie bazy danych, klauzula COLLATE jest wymagany do porównania am.message_type_name = q.message_type_name Aby zakończyć się pomyślnie. Instrukcja określa binarne sortowanie Latin1_General_BIN, aby dopasować zachowanie wewnętrznego porównania używający odpowiadają nazwom usługa usługa Broker.

Uwagi dotyczące sortowanie aplikacji

usługa Broker przesyła treści wiadomości w postaci danych binarnych, a nie powoduje modyfikacji zawartości wiadomości.Jeśli aplikacje wymieniać dane, które są zależne od sortowanie, aplikacje muszą obsługiwać różnice sortowanie.Aplikacje, które zazwyczaj wymiany tekstu umożliwia zminimalizować problemy sortowanie typy standardu Unicode.