Konuşma öncelikleri

Konuşma öncelikleri her biri bir öncelik düzey ve hangi belirlemek için ölçütleri belirler kullanıcı tanımlı bir kurallar kümesi olan Service Broker öncelik düzeyini atamak için görüşmeleri'ı tıklatın. Yüksek öncelik düzeyleri olan konuşmaları gelen iletileri genelde gönderilen veya düşük öncelik düzeyleri olan konuşmaları iletilerden önce alınan.

Görüşmeyi öncelikleri kullanımları

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

  • Diğer önceliği olan konuşmaları tanımlayın.

  • Daha yüksek hızları ödeme müşteriler iletilerden önce iletileri alt kurları ödeme müşterilerden gönderileceği hizmet farklı katman destekler.

  • Müşteri istekleri, arka plan görevlerini gösteriyor.Örneğin, yeni müşteri kayıtları, veri ambarı iş hareket özetlerini göndermek daha yüksek bir öncelik olmalıdır.

Konuşma öncelikleri ve görüşmeyi bitiş noktaları

Konuşma öncelikleri ARACıSı ÖNCELIK CREATE deyim kullanarak her bir veritabanı içinde oluşturulur.Her konuşmaya önceliği aşağıdaki tanımlar:

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

  • Bir öncelik düzey atamak için Service Broker görüşmeleri. Düzeyleri,-10 (yüksek), 1 (düşük) tamsayılar olarak belirtilir.Varsayılan değer 5'dir.

  • Hangi konuşmaları önceliği belirleyen ölçütü düzey şu şekilde uygulanır:

    • Bir anlaşma adı veya ANY.

    • Yerel hizmet adı veya ANY.

    • Uzak hizmet adı veya ANY.

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

  • Başlatıcı konuşma uç noktası, bir görüşmeyi tarafı başlatıcı hizmet ve başlatıcı sıra ile ilişkilendirir.Başlatıcı konuşma uç noktası, BEGIN DIALOG deyim çalıştırdığınızda oluşturulur.Başlatıcı ile ilişkili operasyonlar konuşma uç noktası şunları içerir:

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

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

    • Sonraki alma konuşma grubu başlatıcı kuyruğundan.

  • Hedef konuşma uç noktası, görüşmeyi diğer tarafı hedef hizmet ve sıra ile ilişkilendirir.Başlatıcı ilk iletiden yerleştirin hedef konuşma bitiş noktası oluşturulur hedef sıra.Hedef ile ilişkili operasyonlar konuşma uç noktası şunları içerir:

    • Alan hedef sıra.

    • Hedef gönderir hizmet.

    • Sonraki konuşmayı grubundan alma hedef sıra.

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

  • Başlatıcı için konuşma uç noktası, başlatıcısı hizmetinin yerel hizmet ve hedef hizmetin uzaktan hizmet.

  • Hedef konuşma uç noktası, hedef hizmetin yerel hizmet ve başlatıcısı hizmetinin uzaktan hizmet.

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ı, önceliği korur düzey kadar konuşma sona erer.Yeni öncelikleri veya varolan öncelikleri yapılan değişiklikler varolan görüşmeleri için uygulanır.

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

Bitiş noktası anlaşma

Yerel hizmet bitiş noktası

Uzak hizmet bitiş noktası

Öncelik, anlaşma

Öncelik, yerel hizmet

Uzak hizmet önceliği

Öncelik, anlaşma

Öncelik, yerel hizmet

TÜM

Öncelik, anlaşma

TÜM

Uzak hizmet önceliği

Öncelik, anlaşma

TÜM

TÜM

TÜM

Öncelik, yerel hizmet

Uzak hizmet önceliği

TÜM

Öncelik, yerel hizmet

TÜM

TÜM

TÜM

Uzak hizmet önceliği

TÜM

TÜM

TÜM

Service Broker önce belirtilen anlaşma, yerel hizmet ve uzak hizmetin eşleşen konuşma uç noktası tarafından kullanılan bir öncelik arar.Biri, bulunamazsa Service Broker daha sonra bir anlaşma ve bir bitiş noktası tarafından kullanılan uyan ve uzak hizmetin ANY belirtilen yerel hizmet önceliğiyle arar. Öncelik tabloda listelenen tüm çeşitleri için devam eder.Eşleşme bulunursa, son nokta 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.Sağlamak için Service Broker Öncelik düzeyleri atama başlatıcı hem hedef konuşma son noktalar için her iki bitiş konuşma öncelikleri tarafından kapsanır sağlanmalıdır. Başlatıcı ve hedef konuşma bitiş noktaları ayrı veritabanlarında, konuşma öncelikleri her veritabanı oluşturmanız gerekir.Başlatıcı ve hedef son noktaları, aynı veritabanında varsa:

  • Görüşmeye Göre kullanılan anlaşma adı belirten bir konuşma önceliği ve her iki hizmet, yerel ve Uzak adlar için ANY kullanarak her iki konuşma bitiş kapak.

  • Her konuşmaya bitiş noktası ayrı olarak iki konuşma önceliklerini kullanarak kapak:

    • Bir görüşmeyi başlatan son nokta LOCAL_SERVICE_NAME başlatıcı hizmet adını ve REMOTE_SERVICE_NAME hedef hizmet adını belirtir.

    • Bir görüşmeyi LOCAL_SERVICE_NAME hedef hizmet adını ve REMOTE_SERVICE_NAME Başlatıcı hizmet adını belirtir hedef bitiş noktası.

Genellikle bir konuşma için konuşma bitiş noktalarının her ikisi için aynı öncelik düzey belirtildi.Her bir son nokta için farklı öncelik düzeyleri belirtebilirsiniz, ancak bunu bir yönde diğerinden daha hızlı iletiler gönderiliyor anlamına gelmez.Iletileri bir konuşma uç noktası gönderilen ve diğer uç noktada aldı.Bu nedenle, her ileti iletimi için her iki bitiş atanan öncelik düzeylerine göre etkilenir.Örneğin, konuşma başlatıcı konuşma uç noktası öncelik düzey 10 ve hedef son noktayı öncelik düzey 1 olacak şekilde yapılandırabilirsiniz.Bu durumda:

  • Öncelik düzey 10 kullanarak Başlatıcısı hizmet aktarılan iletileri öncelik düzey 1'i kullanarak hedef sıradan alınır.

  • Öncelik düzey 1'i kullanarak hedef hizmetinden iletilen iletilere öncelik düzey 10 kullanarak bir başlatıcı kuyruğundan alınır.

konuşma grubu aşağıdaki doğruysa aynı öncelik düzey en yüksek öncelik düzey herhangi bir konuşma için atanmış olarak atanır:

  • Görüşmeyi grubunun bir üye.

  • Konuşmayı, hizmet sıradaki iletileri şu anda sahip.

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

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

Konuşma öncelik örneği

Bir sistem aşağıdaki noktaları dikkate alın:

  • Bir InitiatorDB içerenInitiatorService and InitiatorQueue.

  • C TargetDB içerenTargetService and TargetQueue.

  • Adlı BIR anlaşma SimpleContractbelirtir, RequestMessages gönderilenInitiatorService to the TargetService.Ayrıca, belirtir ReplyMessages gönderilenTargetService to the InitiatorService.

Bu komut dosyası önceliğini belirtir düzey başlatıcı konuşma uç noktası ve ilişkili alt işlemler için:

  • GÖNDERME, RequestMessage from the InitiatorService to the TargetQueue.

  • Teslim Al'ın ReplyMessage from the 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 belirtir düzey hedef konuşma bitiş noktası ve ilişkili alt işlemler için:

  • Teslim Al'ın RequestMessage from the TargetQueue.

  • GÖNDERME, ReplyMessage from the TargetService to the 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

Nasıl öncelikleri koymaktadır

Genellikle, Service Broker düşük öncelikli görüşmeleri için ileti göndermekle ve almakla önce yüksek öncelikli konuşmaları iletileri alır ve gönderir. Yüksek öncelikli konuşmaları gelen iletileri sıralarda daha düşük öncelikli konuşmaları iletilerden daha az saat ayırın.

Öncelik düzeyleri alma

Öncelik düzeyleri, iletileri ve işlemleri için her zaman uygulanır veya konuşma grubu tanımlayıcılarının bir sıra.

Öncelik düzeyni belirleme etkene biridir küme iletiler bir teslim AL ve iletileri alınacağı sırası tarafından alınan:

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

    • Yok bir WHERE yan tümce, en yüksek-kilidi öncelik için olan iletileri alır olan BIR Al konuşma grubu iletiler sıraya sahip.

    • Iletiler için WHERE yan tümce alır olan BIR Al konuşma grubu WHERE yan tümcende belirtildi.

  • Bir görüşmeyi grubunda önceliğe bağlı ileti AL alır düzey, gruptaki görüşmeleri.Tüm görüşmeyi en yüksek öncelikli gelen iletileri alınan ilk ve sonraki en yüksek öncelik düzey ile görüşmeyi iletilerde sorumlususunuz ve böyle devam eder.

  • Gönderildikleri gibi bir görüşme iletileri ilgili güvenlik açıklarına karşı aynı sırayla alınır.

En yüksek önceliğe sahip grup düzeyi gelen GET KONUşMA GROUP döndürür küme kilidi gruplarının iletileri sıraya sahip.

Iletim öncelik düzeyleri

örnek için Aktarım sıralarındaki iletileri, sıra göre 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ı.

Iletim kuyruklardaki örneği arasında öncelik düzeylerini Hizmet Aracısı eşgüdümünü veritabanı altyapısı.Hizmet Aracısı önce Öncelik 10 konuşmaları iletim sıralarının tüm gelen iletileri iletir ve sonra Öncelik 9 görüşmeleri ve iletileri.

Öncelik düzeyleri farkı ile göreli farkı ileti performansını artırır.Iki bitişik öncelik düzey 9 ve 10 gibi kullanarak, bir sistemde daha yüksek öncelikli iletiler, bir performans avantaj gerekir.Ayrılmış öncelik düzey s 1 ile 10, yüksek öncelikli iletiler gibi yaygın olarak iki kullanarak sistem düzey daha büyük bir performans avantajı vardır.Birden çok öncelik düzeyleri kullanarak sistemlerinde, üst 2 veya 3 öncelik düzeylere ayrılmış işlemlerin çoğunu.

HONOR_BROKER_PRIORITY veritabanı seçenek konuşma öncelikleri belirtilen öncelik düzeyi yalnızca Aktarım sırasındaki iletilerin uygulanır küme açık.HONOR_BROKER_PRIORITY KAPALı olarak ayarlanırsa, varsayılan öncelik düzeyini 5 kullanarak bu veritabanı için iletim sıraya yerleştirilmiş olan tüm iletiler gönderilir.Görüntülendiğinde kullanma sys.transmission_queue, iletiyi yine de bitiş noktası aldığı öncelik düzeyini görüntüler, ancak iletiyi iletmek için kullanılan varsayılan öncelik düzey.

Öncelik düzeyleri Aktarım sırasındaki iletilerin uygulanır, çünkü bunlar genellikle aynı hizmetleri arasında gönderilen iletiler etkilemez örnek'in.Aynı örnek, bir hizmete gönderilen iletileri, iletim sıra ile olmadan doğrudan hizmet sıraya yerleştirilir.Bazı koşullar, yerel iletiler gibi bazı hatalar veya devre dışı hedef sıranın tür iletim sıraya yerleştirilmiş neden olabilir.Ileti iletim sırada saklanıyorsa, geçerli bir öncelik düzey uygulanır.

Yetersiz öncelik sırasına gönderilebilir, iletilerin ve ileti parça:

  • Service Broker Veritabanı Altyapısı'nın ileti parçaları bloklarını kullanarak örnekleri arasında iletileri gönderir.Hizmet Aracısı bir örneğine göndermeye hazır farklı önceliklere sahip birkaç ileti parçaları varsa, tüm parçaları bir blok olarak gönderebilir.Bazı bloğunun sonuna parçaları, başka örnek için iletim için bekleyen ileti parçaları daha düşük bir öncelik düzey olabilir.

  • Service Broker çok sayıda yüksek öncelikli iletiler düşük öncelikli iletileri engelleme karşı korumak için starvation önleme mekanizması içerir.Bekleyen uzun bir süredir düşük öncelikli bir iletinin, olsa bile daha yüksek öncelikli iletiler sıraya gönderilemez.

Iletileri tek tek veya iletinin parçaları yetersiz öncelik sırasına gönderilebilir, ancak etkilerini çok sayıda ileti gönderir kabul ettiğinizde küçük olmalıdır.