Konuşma öncelikleri

Konuşma öncelikleri olan bir öncelik düzey ve hangi belirleme ölçütleri belirtir her biri bir kullanıcı tanımlı kurallar küme, Service Broker görüşmeleri atama öncelik düzey.Öncelik düzeyleri yüksek olan görüşmeleri gelen iletileri genelde gönderilen veya alınan düşük öncelik düzeyleri olan görüşmeleri iletilerden önce.

Konuşma öncelikleri kullanımları

Konuşma öncelikleri, aşağıdakileri yapmak için kullanılabilir:

  • Diğerleri üzerinde önceliği vardır görüşmeleri tanımlayın.

  • Farklı katman, destek hizmet, kim daha yüksek hızları ödeme müşterilerden gelen iletileri önce iletileri alt kurları ödeme müşterilerden gönderileceği.

  • Müşteri istekleri arka plan görevlerini lehine hareket.Örneğin, yeni müşteri kayıtları iş hareket özetleri gönderme için bir veri ambarı'den daha yüksek bir öncelik olmalıdır.

Konuşma öncelikleri ve konuşma bitiş noktaları

Konuşma öncelikleri broker ÖNCELİK oluşturma deyim kullanarak her veritabanında oluşturulur.Her konuşma önceliği aşağıdaki tanımlar:

  • Konuşma öncelik için bir ad.

  • Atamak için bir öncelik düzey Service Broker görüşmeleri.Düzeyi 1 (en düşük) arasında bir tamsayı 10 (en yüksek) olarak belirtilir.Varsayılan değer 5'dir.

  • Öncelik düzey hangi görüşmeleri belirleme ölçütleri şunlar için geçerlidir:

    • anlaşma adı veya herhangi.

    • Yerel hizmet adı veya herhangi.

    • Uzak hizmet adı veya herhangi.

Service Broker Bitiş noktası oluşturulduğunda konuşma bitiş noktaları için öncelik düzeyleri atar.Her görüşme iki konuşma bitiş noktası vardır:

  • Başlatıcı konuşma uç noktası konuşma bir tarafı Başlatıcı hizmet ve Başlatıcı sıra ile ilişkilendirir.Başlatıcı konuşma uç noktası iletişim BAŞLAMADAN deyim çalıştırdığınızda oluşturulur.Başlatıcı ile ilişkili işlemleri konuşma uç noktası şunları içerir:

    • Başlatıcıdan gönderir hizmet.

    • Başlatıcı sıradan alır.

    • Sonraki konuşma grubu Başlatıcı sıradan alınıyor.

  • Hedef konuşma uç noktası konuşma diğer tarafında hedef hizmet ve sıra ile ilişkilendirir.Başlatan ilk iletiden koymak hedef konuşma uç noktası oluşturulduğunda hedef sıra.Hedef ile ilişkili işlemleri konuşma uç noktası şunları içerir:

    • Aldığında hedef sıra.

    • Dan gönderir hedef service.

    • Dan sonraki konuşma grubu alma hedef sıra.

Hangi hizmetin bir yerel veya uzak hizmet türüne bağlıdır gibi değerlendirilir konuşma uç noktası:

  • Başlatıcı konuşma uç noktası için Başlatıcı hizmet yerel hizmetidir ve hedef hizmet uzak hizmetidir.

  • Hedef konuşma uç noktası için hedef hizmet yerel hizmetidir ve Başlatıcı hizmet uzak hizmetidir.

Nasıl Hizmet Aracısı öncelik düzeyleri atar

Service Broker Konuşma bitiş noktası oluşturulduğunda konuşma öncelik düzeyleri atar.konuşma uç noktası öncelik korur düzey kadar görüşme sona erer.Yeni öncelikleri veya varolan öncelikleri yapılan değişiklikler varolan görüşmeleri için uygulanmaz.

Service Brokerkonuşma uç noktası öncelik düzey, anlaşma ve Hizmetleri ölçütlerini en iyi eşleşen bitiş noktası özellikleri arasında konuşma öncelik atar.Aşağıdaki tablo eşleşme önceliği gösterir:

Sözleşme Bitiş noktası

Bitiş noktası yerel hizmet

Uzak bitiş noktası hizmeti

Öncelik sözleşme

Yerel hizmet önceliği

Uzak hizmet önceliği

Öncelik sözleşme

Yerel hizmet önceliği

HERHANGİ

Öncelik sözleşme

HERHANGİ

Uzak hizmet önceliği

Öncelik sözleşme

HERHANGİ

HERHANGİ

HERHANGİ

Yerel hizmet önceliği

Uzak hizmet önceliği

HERHANGİ

Yerel hizmet önceliği

HERHANGİ

HERHANGİ

HERHANGİ

Uzak hizmet önceliği

HERHANGİ

HERHANGİ

HERHANGİ

Service Broker önce belirtilen anlaşma, yerel hizmet ve Uzaktan servis eşleşen konuşma uç noktası tarafından kullanılan bir öncelik arar.Biri bulunursa, Service Broker sonra aradığı için öncelikli bir anlaşma ve yerel hizmet bitiş noktası tarafından kullanılan eşleşir ve burada uzak hizmet belirtildi any.Bu öncelikleri konusunda listelenen tüm değişimleri için devam tablo.Eşleşme bulunursa, bitiş noktası 5 varsayılan öncelik atanır.

The Service Broker communication protocols do not transmit priority levels between conversation endpoints.Service Broker independently assigns a priority level to each endpoint.İçin Service Broker öncelik düzeylerini atama hem Başlatıcı ve hedef konuşma bitiş noktaları için her iki bitiş konuşma öncelikleri. tarafından ele alınmıştır, dikkatBaşlatıcı ve hedef konuşma bitiş noktaları ayrı veritabanlarında, konuşma öncelikleri her veritabanında oluşturmanız gerekir.Başlatıcı ve hedef son noktaları aynı veritabanında iseniz:

  • Görüşmeye Göre kullanılan anlaşma adı belirten bir konuşma öncelik ve herhangi iki yerel ve uzak hizmet adı için kullanarak, her iki konuşma bitiş kapsayabilir.

  • Ayrı ayrı iki konuşma önceliklerini kullanarak her konuşma uç noktası kapsayabilir:

    • Başlatıcı hizmet adı için LOCAL_SERVICE_NAME ve REMOTE_SERVICE_NAME için hedef hizmet adı belirtir Başlatıcı son nokta için bir konuşma.

    • Hedef hizmet adı için LOCAL_SERVICE_NAME ve REMOTE_SERVICE_NAME için Başlatıcı hizmet adı belirtir hedef son nokta için bir konuşma.

Genellikle konuşma bitiş görüşme için her ikisi için aynı öncelik düzey belirtildi.Her son nokta için farklı öncelik düzeyleri belirleyebilirsiniz, ancak bunu iletileri tek bir yönde diğerinden daha hızlı gönderilir anlamına gelmez.İletilerin gönderildiği'nden konuşma uç noktası ve diğer uçta aldı.Bu nedenle, her iki uç noktaları için atanan öncelik düzeylerine göre her ileti aktarımını etkilenir.Örneğin, konuşma Başlatıcı konuşma uç noktası öncelik düzey 10 ve hedef bitiş noktası öncelik düzey 1 olacak şekilde yapılandırabilirsiniz.Bu durum:

  • Başlatıcı hizmetinden öncelik düzey 10 kullanılarak iletilen iletileri den alınan hedef sıra öncelik düzey 1 kullanarak.

  • İletiler hedef aktarılan hizmet öncelik kullanarak düzey 1 alınan öncelik düzey 10 kullanılarak Başlatıcı sıradan.

konuşma grubu burada aşağıda doğru aynı öncelik düzey en yüksek öncelik düzey herhangi bir görüşmeyi atanmış olarak atanır:

  • Görüşme ise bir üye grubu.

  • Konuşma, şu anda hizmet sıraya iletisi vardır.

Hiçbir konuşma öncelikleri veritabanında oluşturulan tüm konuşma bitiş noktaları bir veritabanında varsayılan öncelikler 5 atanır.

Konuşma öncelikleri 5 varsayılan öncelik düzey her zaman çalışır ileti iletme etkilemez.

Konuşma öncelik örneği

Bir sistem ile aşağıdakileri göz önünde bulundurun:

  • Bir InitiatorDB içeren bir InitiatorService ve InitiatorQueue.

  • A TargetDB içeren bir TargetService ve TargetQueue.

  • Adlı bir anlaşma SimpleContract, bu güç ayarının, RequestMessages , gönderilen InitiatorService için TargetService.Onu da belirleyen bir ReplyMessages , gönderilen TargetService için InitiatorService.

Bu komut dosyası önceliğini belirten düzey Başlatıcı konuşma uç noktası ve onun ilişkili işlemleri için:

  • Gönder, RequestMessage dan InitiatorService için TargetQueue.

  • Al, ReplyMessage dan InitiatorQueue.

USE InitiatorDB;
GO
CREATE BROKER PRIORITY InitiatorToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = InitiatorSerivce,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 3);
GO

Bu komut dosyası önceliğini belirten düzey hedef konuşma uç noktası ve onun ilişkili işlemleri için:

  • Al, RequestMessage dan TargetQueue.

  • Gönder, ReplyMessage dan TargetService için InitiatorQueue.

USE TargetDB;
GO
CREATE BROKER PRIORITY TargetToInitiatorPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'InitiatorService',
         PRIORITY_LEVEL = 3);
GO

Öncelikleri nasıl çalışır

Genellikle, Service Broker düşük öncelikli görüşmeleri için ileti gönderme ve alma önce yüksek öncelikli görüşmeleri için iletileri alır ve gönderir. Yüksek öncelikli görüşmeleri iletilerden daha az harcamaya saat sıralarda daha düşük öncelikli görüşmeleri. gelen iletileri

Alımına öncelik düzeyleri

Öncelik düzeyleri her zaman iletileri alma işlemleri için uygulanan ya da konuşma grubu bir sıra tanımlayıcıları.

Öncelik düzey alma ve iletileri alınacağı sırası tarafından alınan iletileri küme belirleme Etkenler biridir:

  • Her Al deyim her zaman bir konuşma grubu iletileri alır:

    • where yan tümce tümce tümce yok yüksek-kilidi önceliği ait iletileri alır sahip Al konuşma grubu iletileri sıraya sahip.

    • where yan tümce tümce tümce where yan tümce tümce tümcesinde belirtilen konuşma grubu iletileri alır sahip Al.

  • konuşma grubu içinde önceliğe bağlı ileti alma alır düzey grubundaki konuşmalar.Tüm iletileri gelen en yüksek öncelik düzey ile yapılan görüşme alınan ilk ve sonraki en yüksek öncelik düzey ile yapılan görüşme için iletileri olan vb..

  • Bir görüşme içinde gönderildikleri gibi iletiler aynı sırayla alınır.

Görüşme grup alma en yüksek önceliğe sahip grup düzey gelen verir küme iletileri sıraya sahip kilidi grupları.

İletim öncelik düzeyleri

İletiler için iletim sıralarındaki bir örnek göre sıralı aktarılır:

  • Bunların ilişkili konuşma uç noktası öncelik düzey.

  • Öncelik düzey içinde iletişimindeki kendi gönderme sırası.

Hizmet Aracısı iletim sıralarında arasında öncelik düzeyleri koordinatları bir örnek Veritabanı Altyapısı'nın.Hizmet Aracısı önce tüm iletim sıra önceliği 10 görüşmeleri gelen iletileri iletir ve sonra öncelik 9 görüşmeleri ve benzeri iletileri.

Öncelik düzeyleri arasındaki fark ile göreli fark ileti performansını artırır.İki bitişik önceliği kullanarak bir sistem içinde düzeys, 9 ve 10, daha yüksek öncelikli iletiler gibi düzey küçük bir performans avantajı olacak.Öncelikli iki yaygın olarak kullanan bir sistem içinde ayrılmış düzeys, 1-10, daha yüksek öncelikli iletiler gibi düzey daha büyük bir performans avantajı vardır.Birden fazla öncelik düzeyleri kullanarak sistemlerinde, işlemlerin çoğunu üst 2 veya 3 öncelik düzeyleri için ayrılır.

Konuşma öncelikleri'nde belirtilen öncelik düzeyleri yalnızca uygulandığı iletim sırasındaki iletilerin HONOR_BROKER_PRIORITY veritabanı seçenek ise küme açık.HONOR_BROKER_PRIORITY off için küme ise, o veritabanı için iletim sıraya yerleştirilmiş tüm iletiler varsayılan öncelik düzey 5 kullanılarak gönderilir.Kullanılarak görüntülendiğinde sys.transmission_queueiletiyi yine de öncelik düzey bitiş noktasından alınan görüntüler, ancak iletiyi iletmek için kullanılan varsayılan öncelik düzey.

Öncelik düzeyleri iletim sırasındaki iletilerin uygulandığından, bunlar genellikle aynı Hizmetleri arasında gönderilen iletileri etkilemez örnek Veritabanı Altyapısı'nın.Aynı servisine gönderilen iletileri örnek iletim sırası yoluyla geçmeden doğrudan hizmet sıraya yerleştirilir.Bazı koşullar, yerel iletileri iletim sırasındaki hatalar veya hedef sırada etkin olan bazı türleri gibi yerleştirilmesine neden olabilir.İleti iletimi kuyrukta saklanır, ilgili öncelik düzey uygulanır.

İleti ve ileti parçaları öncelik sırası gönderilebilir:

  • Service Broker iletileri ileti parçacıklarının bloklarını kullanarak veritabanı altyapısı örnekleri arasında gönderir.Hizmet Aracısı vardır, birkaç ileti parçaları tek örnek göndermeye hazır farklı önceliklere sahip tüm parçaları tek bir blok olarak gönderebilir.Bazı parçaları blok sonunda daha düşük bir öncelikte olabilir düzey daha başka bir örneğine iletimi için bekleyen ileti parçaları.

  • Service Broker düşük öncelikli iletiler engellemekten çok sayıda yüksek öncelikli iletiler tutmaya yardımcı olmak için sorunlar önleme mekanizması içerir.Uzun süre bekleyen bir düşük öncelikli ileti saat olsa dahi, daha yüksek öncelikli iletiler sıraya gönderilemez.

Tek tek iletilerinizi veya ileti parçaları öncelik sırası gönderilebilir, ancak etkileri arasında çok sayıda ileti gönderir kabul zaman küçük olmalıdır.