Hizmet Aracısı iletişim protokolleri
Service Broker Uzak komisyoncularından ile iletişim kurmak için bir özel Aracısı Ýletiþim Kuralý'ný kullanýr.Aracısı normal istemci bağlantıları havuzdan ayrı ayrı bağlantılarını yönetir.Kullanılabilmesi için iki SQL Server değişimi için örnekler Service Broker iletiler, diğer bir örnek için kullandığı bağlantı noktası TCP/IP trafiği göndermek her örneği olmalıdır Service Broker iletişim. Kuralı tarafından Service Broker genellikle bağlantı noktası 4022 Aracısı, Aracısı iletişim için kullanır. Bitiş noktası oluşturulduğunda, ancak tam bağlantı noktası belirtildi.
protokol katmanları
Service Broker katmanlı bir yaklaşım, iletişime geçer.Her katmanı güvenilir teslim sağlamak için alttaki katman oluşturur.Bu yaklaşım, uygulamaya uzaktan hizmet veya iletişim kurmak için Aracısı kullandığı fiziksel aktarım konumunu bilgi olmadan çalışmasına izin verir.Çoğu durumda, bu uygulama için saydam kurallarıdır.Ancak, her protokol katmanına oynadığı rolü anlama bir uygulama ile ilgili sorunları gidermede yardımcı olabilir.
Aracısı'nı kullanan en üst düzey protokol iletişim protokolü.Iletişim protokol katmanına güvenilir, sıralı ileti iletimi işler.Iletişim protokol katmanına iletiler için sıra numaraları oluşturur, alındı bildirimi iletileri oluşturur, iletileri uygun sıralara gönderir ve parçacık ve iletilerin yeniden.Iletişim kutusu protokol kimlik doğrulaması ve şifreleme için bir iletişim kutusu.
Iletişim Ýletiþim Kuralý'ný kullanýr bitişik Aracısı protokol ileti parçalarını aktarmak için.Bitişik Aracısı protokol, iki Aracısı örnekleri arasında değiş tokuş ağ aktarımlarını yönetir.
Bitişik Aracısı Ýletiþim Kuralý'ný kullanýr bir aktarım protokolAracısı Aracısı gelen iletileri taşımak için TCP/IP gibi.
Iletişim protokol
Iletişim kutusu protokol tam olarak-kez-sıralı (EOIO) teslim deseni, konuşma iletilerini yönetir.Bu protokol biçimi tanımlar, Service Broker iletiler, ağda kullanın. Bunun yerine, protokol mantıksal güvenilir bir konuşma için gereken adımları belirler.Iletişim protokol oluşturma ve alındı bildirimi iletileri işleme de dahil olmak üzere güvenilir teslim için gereken görevleri gerçekleştirir.
Her görüşme iletişim protokol katmanına Katalog görünümü için genel olarak bildirilen bir son nokta tarafıdır sys.conversation_endpoints iletişim hakkında bilgileri protokol bitiş noktaları gösterir.Görüşmenin yaşam süresi için BIR konuşma bitiş var.
Bitişik Broker protokol
Ikisi arasındaki iletişimin mechanics bitişik Aracısı protokol katmanına işleme SQL Server örnekleri. Bu katman her ileti parçası ağ üzerinden aktarım için uygun standart bir biçimde kodlar.Farklı iletişim protokol katmanı, bitişik bir protokol katmanı kullanılan ağ aktarım katmanı bilmektedir ve ileti parçaları uygun şekilde biçimlendirir.Gerçekte, bitişik Aracısı protokol katmanına iletişim protokol katmanı ve aktarım protokol katmanına arasında bir Özet düzeyi sağlar.
Her Service Broker bitişik bir protokol katmanı için genel olarak bildirilen bir son nokta ağ bağlantısıdır. The dynamic management view sys.dm_broker_connections shows information about Service Broker network connections.Service Broker maintains the network connection while messages are actively exchanged.Service Broker closes the network connection when no messages have been sent or received over the network connection for a short period of time.
Aktarım protokol
Aktarım protokol katmanına gerçek ağ iletim gerçekleştirir.Bu katman dışında kalıyor Service Broker. Örneğin, bir başka örnek çalışan bir Aracısı iletileri SQL Server TCP/IP aktarım protokol katmanı olarak kullanın.
Service Broker endpoints set options for the transport protocol.SQL Server does not contain Service Broker endpoints by default.Oluşturma hakkında daha fazla bilgi için bir Service Broker Son nokta için bkz: Nasıl Yapılır: (Transact-SQL) ağ Service Broker'ı etkinleştir.
Ileti işleme aracı hizmet
Service Broker iletinin iki ayrı kategorileri kullanır.C sıralı ileti sırada uygulama için yalnızca bir kez teslim iletisidir.Bir unsequenced ileti sırası ne olursa olsun, ileti geldiğinde hemen işlenebilir bir iletidir.
Service Broker kullandığı tüm kullanıcı tanımlı ileti türleri, son iletişim iletileri ve hata iletileri, bir uygulama tarafından oluşturulan iletileri sıralı.Sıralı her iletinin bir sıra numarası vardır.Ileti kaynaklı örnek, iletinin sıra numarasını oluşturur ve iletinin sıra numarası atar.Alıcı Aracısı, bir uygulamaya sağladığı iletileri sipariş için iletinin sıra numarasını kullanır.For a given dialog, the application always receives the message with the lowest sequence number first.Service Broker also uses the message sequence number to detect duplicate messages.Iletişim protokol katmanına aynı iletişim aynı sıra numarasına sahip iki iletileri aldığında, iletişim protokol katmanına çoğaltmaları için iletileri dikkate alır ve bir atar.
Service Broker uses unsequenced messages for dedicated acknowledgement messages and error messages created by Service Broker.Service Broker takes no special precautions to deliver an unsequenced message.Ancak, fark, Service Broker gelen iletilere yanıt unsequenced iletileri oluşturur. Bu nedenle, unsequenced iletinin kaybolursa, gönderenin özgün ileti yeniden deneyecek; alıcı, daha sonra başka bir unsequenced ileti oluşturur.
Iletinin parçalanması
Service Broker Giden iletilere parçaları böler ve özgün iletiye gelen parçaları bir araya getirir.Küçük iletiler için iletinin tamamının bir parçası bulunur.Büyük iletileri için Service Broker fazla parça oluşturur.
Iletileri fragmenting çeşitli yararları vardır.Küçük parçaları büyük bir ileti gönderme ve toplam hızı ve güvenilirliği Wide-alan ağları (WAN'lar) gibi görece yavaş ve güvenilir olmayan ağlar üzerinden iletişim kurarken artırır.Bir iletinin parçası kaybolursa, protokol yalnızca bir parçası tamamlandı iletisi yerine geçer.Fragmenting large messages can also reduce the time required for a small message to reach the destination.Service Broker can send a fragment that contains a complete small message between fragments of a large message.Bu biraz azaltmak için büyük ileti yavaşlatır saat küçük iletinin aktarılması için bekleyeceği.
Bir iletinin yeniden karşın, kısmi bir iletinin hedef sıraya depolanır.Hedef sıra kullanılamıyorsa, iletim sırada saklanır.Kısmi BIR ileti, bir uygulama tarafından alınamıyor.The status sütun for a partial message is küme to 2 (Disabled).Bu değer, teslim alınan iletiler için de kullanılır.
Merkeze, iletinin alındı
Service Broker alınan her iletinin onaylar.Bir bildirim parçaları için bir veya daha çok ileti kabul.Olanaklıysa, bir bildirim üzerinde aynı konuşmaya döndürülen bir iletinin başlığında bulunur.Başka bir ileti gönderilmesini, hazırsanız Service Broker bir ayrılmış bir alındı bildirimi iletisi döndürür. Ileti alındısı tamamen yapılmaktadır Service Broker; kullanan bir uygulama Service Broker Bu iletileri almaz.
Gönderenin, alıcının değil onaylanmaz ileti parçaları korur.Gönderenin hiçbir bildirim bekleme sistem tanımlı bir saat içinde alınmazsa, iletinin parçası yeniden gönderir.Bekleme saat sırasında hiçbir alındı bildirimi aldıysanız Service Broker üssel önce sonraki yeniden için bir en fazla bekleme saat kadar saat miktarını artırır. Yeniden deneme için ilk bekleme saat, birkaç saniyedir.En fazla bekleme süresini yaklaşık bir dakikadır.Kesin; ağ trafiği ve diğer etkinliğinde bağımlı bekleme süresini olduğuna dikkat edin amaçlandığı SQL Server Örneğin, bir iletinin parçası için birkaç saniye bekleme saat dolduktan sonra denenmesi değil.
Alıcı, bir bildirim kayboldu veya Gecikmeli, yinelenen iletileri alabilirsiniz.Bu durumda, alıcı, yinelenen ileti alış irsaliyesi bildirdikten ancak yinelenen ileti sıraya teslim.
Service Broker ileti alındısı Güvenilir dağıtılmış hareketleri iletileri sağlamak için kullanır.Alıcı, iletinin veya iletinin parçası, sıraya ekledikten sonra yalnızca bir bildirim gönderir.Bu ileti için bildirim gelinceye kadar göndereni, ileti aktarım sırada tutar.Gönderenin ve alıcının hiç bir işlem paylaşmak, ancak alıcı, iletinin başarıyla aldı kadar gönderenin iletiyi iletim sıradan kaldırmaz, protokolün güvence altına alır.
Ileti bütünlük denetimi
Biçim, Service Broker iletileri aktarmak üzere kullandığı belirli bir iletinin değiştirilmiş veya aktarım sırasında bozuk olup olmadığını belirlemek için ileti bütünlük denetimi içerir.
The message integrity check is an MD5 signature for the contents of the message.SQL Server encrypts the signature with the session key for the message, and includes the signature in the message headers.
Iletinin hedef iletinin şifresini çözer ve sonra da alınan gerçek içeriği hesaplanan bir yeni imza için iletideki imzayı karşılaştırır.Imzaları eşleşmiyor, iletinin bozuk veya iletim sırasında Viewer'in.The message fails the message integrity check.SQL Server discards the message and does not acknowledge the message to the sender.The Broker:Corrupted Message olay class reports information when a message fails the message bütünlük check.
Hizmet Aracısı iletim nesneleri
C Service Broker iletim yönetir ve bir iletişim kutusu iletisi iletimlerde durumunu kaydeder bellek içi nesneye nesnesidir. Her konuşma uç noktası bir iletim nesnesi vardýr.
Aşağıdakileri yaptığında, BIR iletişim kutusu bir iletim nesnesi ister:
Iletim sırası ile ilgili bir ileti gönderir.Bu, aşağıdakileri içerir:
Uzak için gönderilen tüm iletilerin örnek, Database Engine
Ileti doğrudan hedef sıraya eklenemiyor, iletileri yerel örneğinde sıralara gönderilen
Uzak bir ileti ya da yerel iletim sıradan gelen bir ileti alır.
A transmission object is created the first time that a dialog requests one.Service Broker uses the same transmission object for subsequent requests from that dialog.Iletim nesneleri her saat değiştirilir, Service Broker bir iletişim için aktarımları durumunu kaydetmek bu seçeneği vardır. Aktarım, yaklaşık 1 KB nesneleridir.
Belleği boşaltmak için Service Broker Dönemsel toplu işlemlerine etkin değil bir aktarım nesnelerin depolar. tempdb iş tablolar.Bellekte bir aktarım nesnesini ilk değiştirildiğinde kirli olarak işaretlendi.Bir iş için aktarılmadan önce bu kadar iletim nesne kirli olarak işaretli kalır tablo.
Iletim nesneleri doğrudan hedef sıraya yerleştirilmiş olan yerel iletileri almak veya göndermek için kullanılır.
Ağ iletişimi akışı
Aşağıdaki resimde, üst düzey bir görünümünü sunar. Service Broker ikisi arasındaki ağ iletişimi SQL Server örnekleri.
Görüşmeyi kalıcı bir mantıksal bağlantı olduğuna dikkat edin.O saat döneminde, ağ bağlantılarının herhangi bir sayıda görüşmeyi kullanabilirsiniz ve görüşmeyi tüm saat oluşabilir.
Ağ bağlantıları arasında iki oluşur. Service Broker Bitiş noktası. Bu bağlantılar, TCP/ıp'yi kullanmak.Bağlantı, bir saat için etkin ise SQL Server Ağ bağlantısını keser.
Bir iletiyi teslim etmek için Service Broker iletiyi gönderen bir veritabanı için iletim sıraya ileti tutar. Alıcı iletiyi sıra için hedef hizmet doğrudan teslim eder.Bu sıra KAPALı'dır, iletinin alıcı veritabanı için iletim sırası geçici olarak tutulur.Sıraya gönderme hizmet işlemi katıldı.Iletim sıraya alınması barındıran veritabanı hizmet hedef sıraya KAPALı ise yalnızca katıldı.