Hizmet Aracısı iletişim protokolü
Service Broker broker özel protokol uzak aracıları ile iletişim kurmak için kullanır.Broker bağlantıları istemci bağlantıları normal havuzdan ayrı olarak yönetir.Sırayla iki SQL Server değişimi için örnekler Service Broker iletiler, her örnek olmalı TCP/IP trafiğini kullanan diğer örneği için bağlantı noktasına göndermek mümkün Service Broker communications.Kurallarına göre Service Broker Sık 4022 için broker broker iletişim bağlantı noktası olarak kullanırAncak, bitiş noktası oluşturulduğunda tam bağlantı noktası belirtildi.
İletişim kuralı katmanlarını
Service Broker iletişim için katmanlı bir yaklaşım olur.Her katmanın güvenilir teslim olmak için alttaki katman oluşturur.Bu yaklaşım, uzaktan hizmet veya ayırıcı iletişim kurmak için kullandığı fiziksel taşıma konum bilgi olmadan çalışması bir uygulama sağlar.Çoğu durumda, bu uygulama için saydam kurallarıdır.Ancak, her protokol katmanına oynadığı rolü anlama uygulama sorunları gidermeye yardımcı olabilir.
Broker kullanan üst düzey protokol iletişim protokolü.İletişim protokol katmanına güvenilir, sıralı ileti aktarımını yönetir.İletişim protokol katmanına iletiler için sıra numaraları üretir, alındı bildirimi iletileri oluşturur, uygun sıralara ileti gönderir ve Parçacık ve iletilerin yeniden birleştirir.kimlik doğrulaması ve şifreleme için bir iletişim iletişim protokol işler.
İletişim protokol kullanan bitişik broker protokol ileti parçaları aktarmak için.Bitişik broker protokol ağ aktarımları iki broker örneği arasında değiş tokuş yapar.
Bitişik broker protokol kullanan bir transport protokol, broker broker iletileri taşımak için TCP/IP gibi.
İletişim protokolü
İletişim protokol tam olarak bir kez-içinde-sipariş (EOIO) teslim desen, Konuşma iletilerini yönetir.Bu protokol biçimi açıklanmaz, Service Broker iletileri kullanan ağ.Bunun yerine, protokol güvenilir bir konuşma için gerekli olan mantıksal adımları belirtir.İletişim protokol oluşturma ve bildirim iletileri işleme de dahil olmak üzere güvenilir teslimat için gereken görevleri gerçekleştirir.
Her konuşma iletişim iletişim kuralı katmanına Katalog görünümü bitiş noktasındaki tarafıdır sys.conversation_endpoints protokol bitiş noktaları iletişim hakkında bilgi gösterir.konuşma uç noktası konuşma süresi için bulunmaktadır.
Bitişik Broker iletişim kuralı
Bitişik broker protokol katmanına mekanizması, iki ayrı saat arasındaki iletişimin işleme SQL Server örnekleri.Bu katman her ileti parçası ağ üzerinden iletim için uygun standart bir biçimde kodlar.İletişim protokol katmanına aksine bitişik bir protokol katmanına kullanılan bir ağ aktarım farkındadır ve ileti parçaları uygun şekilde biçimlendirir.Yani bitişik broker protokol katmanına bir soyutlama katmanı arasındaki iletişim protokol katmanı ve aktarım protokol katmanı sağlar.
Her Service Broker ağ bağlantısı, bitiş noktasındaki bitişik protokol katmanı.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 iletişim kuralı
Aktarım protokol katmanı gerçek ağ iletim gerçekleştirir.Bu katman dışında olan Service Broker.Örneğin, bir başka örnek içinde çalışan bir broker iletileri SQL Server kullanan TCP/IP aktarım protokol katmanı.
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 Bkz: Nasıl yapılır: Hizmet Aracısı ağ (Transact-sql) etkinleştir.
Hizmet Aracısıİleti işleme
Service Broker iletinin iki ayrı kategorileri kullanır.A sıralı ileti bir ileti sırasına göre uygulamaya yalnızca bir kez teslim edilmelidir.Bir unsequenced ileti içinde ileti ulaştığında sırası ne olursa olsun hemen işlenebilir bir iletidir.
Service Broker tüm kullanıcı tanımlı ileti türleri son iletişim kutusu iletilerini ve hata iletilerini bir uygulama tarafından oluşturulan iletileri kullanır sıralı.Sıralı her iletinin sıra numarası vardır.İleti kaynaklı örnek ileti sıra numarası oluşturur ve ileti sıra numarası atar.Alan ayırıcı ileti sıra numarası, uygulamaya sağlar iletileri sıralamak için 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.İletişim protokol katmanına aynı sıra numarası ile aynı iletişim kutusunda iki ileti aldığında, iletişim protokol katmanı yineleme olarak iletileri dikkate alır ve tek yoksayar.
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 yanıt olarak unsequenced iletileri oluştururgelen iletiler. Bu nedenle, unsequenced ileti kaybolursa, gönderenin özgün ileti yeniden deneyecek; Alıcı daha sonra başka bir unsequenced iletisi oluşturur.
İleti parçalanması
Service Broker Giden iletilere parçalarýný böler ve özgün iletiye gelen parçaları bir araya getirir.Küçük iletiler için iletinin tamamını bir parçasında yer alıyor.Büyük iletiler için Service Broker oluşturur birçok parça.
İletileri fragmenting çeşitli yararları vardır.Küçük parça içinde büyük bir ileti gönderme ve genel hızı ve güvenilirliği geniş alan ağları (WAN) gibi görece yavaş ve güvenilir olmayan ağlar üzerinden iletişim kurarken artırır.İleti parçası kaybolursa, protokol sadece 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şlar saat iletilmesi için küçük ileti beklediği.
Bir iletiyi yeniden karşın, kısmi iletinin hedef sıraya depolanır.Hedef sıra kullanılamıyorsa, iletim kuyrukta saklanır.Bir uygulama tarafından kısmi bir ileti alınamıyor.The status column for a partial message is set to 2 (Disabled).Bu değer, teslim alınan iletiler için de kullanılır.
İleti alındısı
Service Broker alınan her ileti aldığını bildirir.Bir bildirim bir veya daha fazla ileti parçaları kabul.Mümkünse, bir bildirim aynı konuşma, döndürülen ileti üstbilgisi eklenmiştir.Hiçbir ileti gönderilmek üzere hazır olduğunda Service Broker döndüren bir adanmış bir alındı bildirimi iletisi.İleti alındısı ile tamamen ele Service Broker; kullanan bir uygulama Service Broker alma bu iletileri.
Gönderen, alıcı değil bildirdiğinde ileti parçaları korur.Gönderenin ileti parçası bir sistem tanımlı bekleme saat içinde hiçbir bildirim alınırsa, yeniden gönderir.Bekleme saat sırasında hiçbir bildirim alınırsa Service Broker de katlanarak artar önce sonraki yeniden deneme, en fazla süreyi beklemek saat.İlk bekleme saat için yeniden deneme birkaç saniye.En çok bekleme saat yaklaşık bir dakikadır.Bekleme saat çok kesin hatlarla çizilmesi için tasarlanmamıştır dikkat edin; ağ trafiği ve diğer faaliyet türüne göre SQL Server örnek, ileti parçası bekleme saat dolduktan sonra birkaç saniye için denenen.
Bir bildirim Gecikmeli veya kaybolursa, alıcının yinelenen iletileri alabilirsiniz.Bu durum, alıcının yinelenen ileti alındığını onaylar, ancak yinelenen ileti sıraya teslim edilmesi.
Service Broker İleti alındısı, dağıtılmış işlemler güvenilir ileti sağlamak için kullanır.Alıcı iletiyi veya ileti parçası sıraya eklemek sonra bir bildirim gönderir.Bu ileti alındısını gelene kadar gönderenin ileti iletim sırada tutar.Gönderen ve alıcı bir işlem hiçbir zaman paylaşmak, ancak alıcı iletiyi başarıyla almış kadar Gönderenin iletiyi iletim sıradan kaldırmaz, protokol garanti eder.
İleti bütünlüğü denetimi
Biçim, Service Broker iletileri iletmek için kullandığı içeren bir ileti bütünlük denetimi olup olmadığını verili bir ileti değiştirilmediğini veya taşıma sırasında bozulmuş belirleme
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.
İletinin hedef iletinin şifresini çözer ve alınan gerçek içeriği hesaplanan yeni bir imza için iletiye imza ile karşılaştırır.İmzaları eşleşmezse, iletiyi gördüyse veya iletim sırasında üzerinde oynama.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 event class reports information when a message fails the message integrity check.
Hizmet Aracısı aktarım nesneleri
A Service Broker iletim nesnesi olan bir bellek içi nesne yönetir ve ileti iletimlerde durumunu kaydederiletişim. Her konuşma uç noktası bir iletim nesnesi vardır.
Aşağıdakileri yaptığında bir iletişim kutusu iletim nesne ister:
İletim sıra üzerinden bir ileti gönderir.Bu özellikler şunlardır:
Bir uzak örnek olarak gönderilen tüm iletiler Veritabanı Altyapısı
İletinin hedef sıraya girmesine doğrudan eklenemez, için sıraları yerel örnek gönderilen iletileri
Ya da bir uzak veya yerel iletim sıradan gelen iletisini 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.İletim nesneleri her saat değişiklik, Service Broker olan iletimlerde durumu değişikliği kaydetmekiletişim. İletim, yaklaşık 1 kb nesneleridir.
Bellek boşaltmak için Service Broker düzenli olarak, etkin olmayan iletim nesneleri işlerindeki depolar tempdb iş tabloları. Bir iletim nesnesi bellekte ilk değiştirildiğinde kirli olarak işaretlendi.Bir iş için aktarılmadan kadar iletim nesne kirli olarak işaretlenmiş kalır tablo.
İletim nesneleri ya da doğrudan hedef sıraya eklenen yerel ileti alırken veya gönderirken için kullanılır.
Ağ iletişim akışını
Aşağıdaki resimde bir üst düzey görünümü sunar Service Broker iki ayrı saat arasındaki ağ iletişimi SQL Server örnekleri.
Görüşme kalıcı, mantıksal bir bağlantı olduğuna dikkat edin.Konuşma herhangi bir saat dilimi içinde oluşur ve bu süre sırasında Konuşma herhangi bir sayıda ağ bağlantıları kullanabilirsiniz.
Ağ bağlantıları ortaya iki arasında Service Broker Bitiş noktası.Bu bağlantılar, TCP/IP'yi kullanmak.Bağlantı kısa saat için devre dışı ise, SQL Server kapatır ağ bağlantısı.
Bir iletiyi teslim etmeyi Service Broker tutan iletiye iletim veritabanı, gönderilen ileti.Sıra için hedef hizmet için doğrudan alıcı iletiyi teslim eder.O sıra kapalı ise, iletiyi alan veritabanı için iletim sırası geçici olarak tutulur.İşlemde gönderme hizmet için sıraya katıldı.İletim sıraya alınması barındıran veritabanı için hizmet hedef sıraya kapalı ise yalnızca katıldı.