Share via


Anlama harmanlama ve Hizmet Aracısı

Hizmetler ve uygulamalar ile farklı durumlarda izin vermek için tasarlanmış Hizmet Aracısı harmanlama yapılandırmaları için kolay ve verimli iletişim.Bir ileti gönderen bir hizmet barındıran veritabanı aynı kullanabilirsiniz. harmanlama iletiyi aldığında hizmet barındıran veritabanı olarak.Bu nedenle, hizmeti barındıran veritabanı harmanlama ne olursa olsun, adları için tutarlı bir harmanlama Hizmet Aracısı kullanır.Iletişim işleminden harmanlama bilgilerini kaldırmak için , hizmet adı, anlaşma adlarını ve iletinin türü adları eşleştirmek için bir bayt bayt karşılaştırma Hizmet Aracısı kullanır.Bayt dizisi adları eşleştirerek Hizmet Aracısı doğru harmanlama bilgilerini değiştirme, ek yükü olmadan iletileri gönderip almak, hizmetler için basit kolaylaştırır.

Bayt bayt Eşleştir, geçerli harmanlama dikkate almaz ikili bir karşılaştırma etkili olur.Bu nedenle, birçok Aracısı hizmetleri de önerilerini uygun bulmak Service Broker nesneleri adlandırma. Şu kuralları izler ve tüm adları büyük/küçük durum duyarlı olarak ele alan bir uygulama alfabe düzeni hedef hizmet barındıran veritabanı başlatan hizmet barındıran veritabanı arasındaki farklar ne olursa olsun düzgün çalışması.

Sıra harmanlama konuları

Varsayılan harmanlama ne olursa olsun, tutarlı bir harmanlama sırası kullanmak SQL Server örnek veya sıraya ev sahipliği yapan veritabanının varsayılan harmanlama. Sıra durumunu korumak için kullanılan tablo gibi bir veritabanı başka bir tabloyla bir birleştirmek deyim içeren bir deyim hedefi ise açıkça karşılaştırma için harmanlama belirtmeniz gerekebilir.

Örneğin, ileti saklama uygulamadan önce bir konuşma için bazı iletileri saklamak gerekebilecek kullanan bir uygulama, konuşmayı sona erdirir.Aşağıdaki Transact-SQL kod örneği tabloda bir ileti türü adı olan tüm iletiler, belirli bir konuşma için kaydeder. 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

deyim, ileti türü adları eşleşen ikili bir karşılaştırma açıkça belirtir.Sıra, veritabanının varsayılan harmanlama kullanmadığından, COLLATE yan tümcesini karşılaştırma için gereklidir am.message_type_name = q.message_type_name başarılı olması için . deyim bir ikili alfabe belirtir. Latin1_General_BINhizmet adlarını eşleşecek şekilde Hizmet Aracısı'ı kullanan iç harmanlama davranışını eşleşecek şekilde.

Uygulama harmanlama konuları

Hizmet Aracısı, ileti gövdesi ikili veri olarak iletir ve iletinin içeriğini değiştirmez.Uygulamalar, uygulamaları harmanlama duyarlı verileri değiştirirseniz, herhangi bir harmanlama farkı işlemesi gerekir.Metin genellikle exchange uygulamaları Unicode türlerini harmanlama sorunları en aza indirmek için kullanın.