Aracılığıyla paylaş


Yönlendirme Hizmet Aracısı

Bu konu hakkında ayrıntıları açıklarService Brokerileti yollar.Genel bir bakış için bkz:Rotalar.

Çoğu uygulama, basit bir yaklaşım içinService BrokerYönlendirme iyi çalışır.Bir hizmet içeren her veritabanı hizmet ile iletişim kurar dış Hizmetleri için bir yol belirtin.Bununla birlikte,Service Brokerkarmaşık bir yönlendirme sistemi durumda olduğu bir uygulama gerekiyor işleme sağlar daha karmaşık davranış.Örnekler, yönlendirme işlemi göstermek için bkz:Hizmet Aracısı yönlendirme örnekleri.

Yönlendirme işlemi açıklaması

SQL Server yönlendirme bilgilerini iki farklı düzeyde tutar.Yerel yönlendirme her bir veritabanı içeren tablo,sys.Routes, başladı, veritabanını. görüşmeler için Görüşmeler örnek kaynağı içinSQL Server,SQL ServerYönlendirme tablosu, oluşturulan veritabanında arama yapar konuşma.Görüşmeleri için uygun gelen örnek dışındaSQL ServerAramamsdb.sys.Routes.

Görüşme kaynağı örneğindeki veya örnek dışında olup temel eşleştirme işlemi aynıdır.İşlem zaman aşımına uğramış yolları yok sayar.Yönlendirme işlemi, farklı üç adımdan oluşur:

  1. Finding matching routes.Service Broker finds a set of possible routes by matching the service name and the Service Broker identifier.

  2. Choosing a route.Service Broker chooses a route from among the set of possible routes.

  3. Hedef hizmet bulma.Seçilen yol belirtir**'LOCAL'** ağ adresi Service Brokerbulur hizmet örnek.Hizmet örnek, yoksaService Broker, geri dönmek için adım 2 ve seçmek başka bir yol.

When a message has been sent from the initiator to the target and the initiator receives an acknowledgement message from the target, the initiator uses the Service Broker identifier in the acknowledgement messages to route subsequent messages to the same target.Service Broker handles acknowledgement messages; the process is transparent to an application that uses Service Broker.Alındı bildirimi iletileri, daha fazla bilgi için bkz:Hizmet Aracısı iletişim protokolleri.

Yanıt iletileri bir hedef hizmet kaynağı

Örnek dışında gelen gelen bir iletiyi bir hedef hizmetten olduğundaSQL ServerGeçerli örneği olup olmadığını denetlerService Brokertanımlayıcı ileti., Sonra ileti geçerli örnekte açıklandığı gibi teslim edilirse "hedef hizmet. bulma" Aksi takdirde, SQL Serveraşağıdaki standart eşleştirme işlemi.

Eşleşen yollar bulma

Yordamını tanımlar nasılSQL Servereşleşen yol.Her adımda, bir veya daha fazla yol eşleşmezse, eşleştirme işlemi sonlandırır, veService Brokergibi eşleşen yollar birini seçer:

  1. Görüşme belirtirse birService Brokertanımlayıcı, bir yol hem hizmet adı için tam bir eşleşme bulmak veService Brokertanımlayıcı.

  2. Değil belirtme yolları arasında hizmet adı için tam bir eşleştirme bulmak birService Brokertanımlayıcı.

  3. Görüşme değil belirtirseniz birService Brokertanımlayıcı, hizmet adını belirleyen yollar arasında tam bir eşleştirme bulmak birService Brokertanımlayıcı., Üretim tablo hizmet adı ve sahip farklı yolları içerenService Brokertanımlayıcısı, rasgele çekme birService Brokertanımlayıcı.Yalnızca yolları, kullanan, daha sonra aynıService Brokertanımlayıcı.

  4. Dinamik yönlendirme hizmeti için bir yol var ve hizmet için bir yol için hiçbir isteği bekliyor, Gecikmeli görüşmeyi işaretle ve yönlendirme bilgilerini, hizmet isteği.

  5. Her iki hizmet adını belirten bir yol bulmak veyaService Brokertanımlayıcı.

  6. Görüşme belirtirse birService Brokerkimlik ve örnek Hizmetleri ile görüşmesinde, belirtildi adı ile eşleşen adları içeren bir veya daha fazla veritabanı içeren yol görüşme gibi hizmet adı ve ağ adresi ile bir yol yönlendirme tablosunda bulunan**'LOCAL'**.

  7. Gecikmeli görüşmeyi işaretle.

Görüşme, işaretlenmiş gecikmesi,Service Brokergerçekleştiren eşleştirme işlemini yeniden sonra saat aşımı saat.Eşleşen bir yol bulma hatası hata sayılır dikkat edin.

yol seçme

Eşleştirme işlemi birden fazla eşleşen yol bulurService Brokerarasından bir yol seçer eşleşen yol.For this purpose, routes that have the same Service Broker identifier, service name, and network address are considered to be identical.Service Broker uses the following procedure to choose the exact route.Her adımda, adımı için adres belirtimine uyan hiçbir yol varsa işlem bir sonraki adımda devam eder.

  1. Yansıtma adresini belirleyen yollar arasından bir yol seçin.

  2. Yolları belirten arasından yol seçme**'LOCAL'** ağ adresi. , Bu örnekSQL Serverdeğil konuşmada belirtilen ad ile eşleşen bir hizmet içeren, 3. adımda devam.

  3. Ağ adresi belirleme yolları arasından bir yol seçin.

  4. Yolları belirten arasından yol seçme**'TAŞIMA'** ağ adresi.

Broker iletme işlemi etkin değilService BrokerGörüşme kaynaklanmayan geçerli örneği ve adresi, iletinin düşünceye yol seçilen değil**'LOCAL'**.

Hedef hizmet bulma

Daha önce açıklandığı gibiService BrokerGeçerli örnek, eşleşen yol belirtir bir hizmet iletileri teslim eder**'LOCAL'** ağ adresi. İletileri dışında örnek kaynağı yol olmalıdırmsdb.sys.Routes.Kaynağı, iletiler için örnek, eşleşen yol olmasısys.Routes başlatan görüşme. veritabanı tablosu

ZamanService Brokerileti hizmet olduğundan geçerli örneğinde belirlerService Brokergereken bulun hizmet örnek., BirService BrokerGörüşme ya da yolu, görüşme için tanımlayıcı bulunmaktadırService Brokertarafından tanımlanan veritabanı iletileri teslimService Brokertanımlayıcı.

Aksi takdirde,Service Brokerhizmetin ilk arama için hizmet adını içeren veritabanında bulur konuşma.Then, it searches for the service name in the other databases in the instance.Service Broker delivers the message to the first service located., Ancak dikkat edin, sırayıService BrokerArama örnek diğer veritabanlarında belirtilmemiş ve değil konuşmaya gelen tutarlı olması için garanti konuşma.Yani, yoksa fazlası örnek bir kopyasını hedef hizmeti bulunmaktadırService Brokerrasgele seçer hizmet hedef.

Diğer konuları

For improved reliability, Service Broker routing contains safeguards against routing loops.Service Broker routing is aware of database mirroring, and can transparently redirect conversations to the active partner of a mirrored database.

Döngü yönlendirme

Service Broker İletiyi iletme sonsuz yönlendirme döngüleri karşı korumak için bir ileti iletilmiş sayısını izler.Daha fazla bilgi için bkz:Hizmet Aracısı Iletiyi iletme.

If the matching route contains a network address that resolves to the current instance, SQL Server treats the conversation as if the conversation originated outside the instance.Service Broker routes messages for the conversation using the routes in msdb.sys.routes.Bu iletiler için yönlendirme, dışında örneğin ileti yönlendirme için aynıdır.Özellikle, ileti yönlendirme olması için etkinService Brokerbaşka bir ağ adresi iletiyi iletmek için**'LOCAL'**.

Yansıtma adresleri

Yansıtma adresleriyle yolları yol yol ile eşleşen ilk kümesi arasından seçim yaparken en yüksek önceliğe sahiptir.Bununla birlikte,Service Brokerözel dikkat etmeniz gereken adresler, eşleşen yollar için bulma yansıması için verdiğiniz bir konuşma.

ZamanService Brokerbir yansıma adresi belirten bir yol seçer veService Brokerdaha önce teslim kullanarak yolu, iletiService Brokerhangi örnek olan belirlemek için her iki adres için bir istek gönderir. şu anda patron.ZamanService Brokerpatron, tanımlarService Brokeryol olmadan iletişim kurmasını patron kullanan tüm iletileri gönderir. yansıtma örnek.Ulaşılamaz, patron veya bu örnek gösterir, artık patron olduğuService Brokerdiğer adres çifti için iletileri gönderen örnekSQL Serverdiğer adres gösterir, olduğu yeni patron.

In cases where Service Broker cannot reach the principal but the partner does not claim to be new principal, Service Broker does not send messages to the partner.Service Broker then retries the principal address and the partner address until either the principal is reachable, or the partner indicates that it is now the principal.Bu yaklaşım alma tarafındanService Brokergüvenilir bir şekilde teslim iletileri patron ve ortak iletişim kurmak, ancak ileti gönderme örnek olamaz ulaşmak asıl adı.