Yönlendirme Hizmet Aracısı

Bu konuda nasıl ayrıntılarını açıklar Service Broker yolları iletileri.Genel bir bakış için bkz: Yollar.

Çoğu uygulama için basit bir yaklaşan için Service Broker Yönlendirme works well.hizmet içeren her veritabanı hizmet ile iletişim kurar dış Hizmetleri için bir yol belirtin.Ancak, Service Broker durumda burada bir uygulama duyar daha karmaşık davranış işlemek için karmaşık bir yönlendirme sistemi sağlarİşlem yönlendirme gösteren örnekler için bkz: Yönlendirme Hizmet Aracısı örnekleri.

Yönlendirme işleminin açıklaması

SQL Server iki ayrı düzeyde yönlendirme bilgilerini korur.Her veritabanı yerel yönlendirme içeren tablo, sys.routes, o veritabanında çalışmaya görüşmeleri için.örnek kaynaklanan görüşmeleri için SQL Server, SQL Server Yönlendirme arar tablo veritabanında oluşturulan konuşma.Gelen örnek dışında gelmesi görüşmeleri için SQL Server Arama msdb.sys.routes.

Konuşma kaynağı örneği veya örnek dışında olup temel eşleşen özdeş işlemidir.İşlem süresi dolan yolları yok sayar.Yönlendirme işlemi ayrı üç 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.Ne zaman seçilen rotayı belirler 'Yerel' ağ adresi olarak Service Broker bulur hizmet örnek.Hizmet örnek yoksa Service 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 hakkında daha fazla bilgi için bkz: Hizmet Aracısı iletişim protokolü.

Hedef hizmet iletileri Yanıtla

Bir hedef olduğunda gelen örnek dışında iletinin hizmet, SQL Server geçerli örnek içerip içermediğini denetler Service Broker içindeki ileti.Bu nedenle, sonra ileti geçerli teslim edilir, örnek açıklandığı gibi "Hedef hizmeti bulunuyor." Aksi takdirde, SQL Server izler standart eşleştirme işlemi.

Eşleşen yollar bulma

Aşağıdaki yordamı açıklar nasıl SQL Server eşleşen yollar.Bir veya daha fazla yollar aynı, her adımda eşleştirme işlemi sonlandırır, ve Service Broker gibi eşleşen yollar birini seçer:

  1. Konuşma belirtirse bir Service Broker tanımlayıcısı, bir rota ile her ikisi için de tam bir eşleşme bulma hizmet adı ve Service Broker tanımlayıcısı.

  2. Hizmet adı belirtin yollar arasında tam bir eşleşme bulmak bir Service Broker tanımlayıcısı.

  3. Konuşma belirtirseniz, bir Service Broker tanımlayıcısı, hizmet adı belirtin yollar arasında tam bir eşleşme bulmak bir Service Broker tanımlayıcısı.Üretim tablo ve farklı hizmet adı eşleşen yollar içeren Service Broker tanımlayıcıları, Ranges çekme bir Service Broker tanımlayıcısı.Daha sonra kullanan yollar aynı Service Broker tanımlayıcısı.

  4. Dinamik yönlendirme hizmeti için bir yol var ve hizmet için bir yol için hiçbir isteği bekliyor, gecikmiş konuşma işaretlemek ve o Hizmeti'nden yönlendirme bilgileri isteyin.

  5. İkisi de bir hizmet adını belirtir bir yol bulmak, ne de Service Broker tanımlayıcısı.

  6. Konuşma belirtirse bir Service Broker tanımlayıcısı ve Hizmetleri ile görüşme sırasında belirtilen adla eşleşen adları içeren bir veya daha fazla veritabanları örnek içeriyorsa, konuşma yönlendirmek gibi üretim tablo bulunan hizmet adı ve ağ adresi olan bir yol 'Yerel'.

  7. Gecikmiş konuşma işaretle.

Görüşme Gecikmeli, işaretlendiğinde, Service Broker gerçekleştirdiği eşleştirme işlemini yeniden sonra bir saat aşımı saat.Eşleşen bir yol bulmak için başarısız bir hata kabul edilir dikkat edin.

Bir yol seçme

Eşleştirme işlemi birden fazla eşleşen yol bulursa, Service Broker seçer bir yol arasından eşleşen yollar.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.Adımı için adres tanımına uyan hiçbir yol varsa her adımda işlemi sırasında bir sonraki adıma devam eder.

  1. Yansıtma adresi belirtmek yollar arasından bir yol seçin.

  2. Bir yol belirtmek yollar arasından seçim 'Yerel' olarak ağ adresi.Yoksa bu örnek SQL Server değil konuşmada belirtilen adla eşleşen hizmet içeren, adım 3 devam.

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

  4. Bir yol belirtmek yollar arasından seçim 'transport' olarak ağ adresi.

Aktarma Aracısı etkin değilse, Service Broker , konuşma değil kaynaklanan geçerli örnek ve yol seçili adres değil ileti düşünceye 'Yerel'.

Hedef hizmet bulma

Daha önce de açıklandığı gibi Service Broker iletileri teslim eden bir hizmet eşleşen yol belirttiğinde, geçerli örnek 'Yerel' olarak ağ adresi.Örnek dışında iletileri için yol olması msdb.sys.yols.Eşleşen yol olmalıdır örneğinde iletileri için sys.routes tablo görüşme başlatan veritabanı için.

Zaman Service Broker belirler, hizmet için ileti geçerli örneknde, Service Broker bulmanız gerekir hizmet örnek.Zaman bir Service Broker görüşme için tanımlayıcı var konuşma ya da yol Service Broker tarafından tanımlanan veritabanı için iletileri teslim Service Broker tanımlayıcısı.

Aksi takdirde, Service Broker arayarak ilk hizmet adı içeren veritabanındaki hizmet bulurKonuşmayı. 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, fark, sırayı Service Broker örnek diğer veritabanlarında arama belirsiz, ve değil konuşmaya gelen tutarlı olması için garantikonuşma. Yani bir kopyasını hedef hizmet birden fazla örnek var Service Broker hizmet için'rasgele seçerhedef.

Dikkat edilecek diğer noktalar

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.

Yönlendirme döngüleri

Service Broker İletiyi iletme sonsuz yönlendirme döngüleri karşı korumak için bir ileti iletildi sayısını izler.Daha fazla bilgi için bkz: Hizmet Aracısıİletiyi 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 iletilerin yönlendirme örnek dışından gelen iletiler için yönlendirme için aynıdır.Özellikle, ileti iletme için etkin olması gerekir Service Broker dışında bir ağ adresine ileti iletmek için 'Yerel'.

Yansıtma adresleri

Yollar ayna adresleri ile bir yol yolları eşleşen ilk küme arasından seçim yaparken en yüksek önceliğe sahiptir.Ancak, Service Broker adresleri, eşleşen yollar için bulma yansıması için özel dikkat vermekbir konuşma.

Zaman Service Broker bir yansıtma adresi belirtir, bir yol seçer ve Service Broker daha önce teslim yol kullanarak ileti Service Broker hangi örnek var. şu anda asıl belirlemek üzere her iki adres için bir istek gönderir.Zaman Service Broker tanımlayan asıl Service Broker sorumlusu olmadan bağlantı kurmasını yol kullanan tüm iletileri gönderiryansıtma örnek. Patron erişilemiyor veya bu örnek, artık patron olduğunu Service Broker diğer adres çifti için iletileri gönderir örneğini SQL Server diğer adresinde gösterir onu 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 ayırdığınız tarafından Service Broker güvenilir bir şekilde teslim eden iletiler zaman patron ve ortak kurabilir, ancak ileti gönderme örnek edemez ulaşmak sorumlusu.