create broker ÖNCELIK (Transact-sql)

Öncelik düzeyi ve hangi belirlemek için ölçüt kümesini tanımlayan Service Brokeröncelik düzeyini atamak için konuşmaları. Öncelik düzeyi, sözleşmeler ve konuşma öncelik belirtilen hizmetleri aynı kombinasyonu kullanan herhangi konuşma son nokta için atanır. Öncelikleri aralığı değeri 1 (düşük) 10 (yüksek). Varsayılan değer 5'tir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

CREATE BROKER PRIORITY ConversationPriorityName
FOR CONVERSATION
[ SET ( [ CONTRACT_NAME = {ContractName | ANY } ]
        [ [ , ] LOCAL_SERVICE_NAME = {LocalServiceName | ANY } ]
        [ [ , ] REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY } ]
        [ [ , ] PRIORITY_LEVEL = {PriorityValue | DEFAULT } ]
       )
]
[;]

Bağımsız değişkenler

  • ConversationPriorityName
    Bu konuşma öncelik adını belirtir. Adı geçerli veritabanı içinde benzersiz olmalıdır ve kurallarına uyması gereken Veritabanı Altyapısı   tanımlayıcıları.

  • AYARLA
    Konuşma öncelik bir konuşmaya uygularsa belirleme ölçütleri belirler. Belirtilmişse, en az bir ölçüt kümesi içermelidir: contract_name, LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME, ya da PRIORITY_LEVEL. set belirtilmezse, varsayılan tüm üç ölçüt için ayarlanır.

  • contract_name = { ContractName |ANY}
    Konuşma öncelik bir konuşmaya uygularsa belirlemek için bir ölçüt olarak kullanılacak bir sözleşme adını belirtir. ContractNameolan bir Veritabanı Altyapısıtanımlayıcısı ve geçerli veritabanında bir sözleşme adı belirtmeniz gerekir.

    • ContractName
      Konuşma öncelik yalnızca nereye konuşmayı başlatan BEGIN DIALOG deyimi belirtilen on sözleşme görüşmeleri uygulanabilir belirtir ContractName.

    • HERHANGİ BİR
      Konuşma öncelik herhangi konuşma, bakılmaksızın kullanır sözleşme uygulanabileceği olduğunu belirtir.

    Varsayılan değer ANY'tur.

  • LOCAL_SERVICE_NAME = { LocalServiceName |ANY}
    Konuşma öncelik konuşma son nokta için geçerli olup olmadığını belirlemek için bir ölçüt olarak kullanılacak bir hizmet adını belirtir.

    LocalServiceNameolan bir Veritabanı Altyapısıtanımlayıcısı. Geçerli veritabanında bir hizmet adı belirtmeniz gerekir.

    • LocalServiceName
      Konuşma önceliği aşağıdaki için uygulanabilir belirtir.

      • Başlatıcı Hizmeti adı eşleşen herhangi başlatıcı konuşma bitiş LocalServiceName.

      • Hedef hizmet adı eşleşen herhangi hedef konuşma bitiş LocalServiceName.

    • HERHANGİ BİR

      • Konuşma öncelik bitiş noktası tarafından kullanılan yerel hizmetin adı ne olursa olsun herhangi konuşma son nokta için uygulanabilir belirtir.

    Varsayılan değer ANY'tur.

  • REMOTE_SERVICE_NAME = {'RemoteServiceName' | ANY}
    Konuşma öncelik konuşma son nokta için geçerli olup olmadığını belirlemek için bir ölçüt olarak kullanılacak bir hizmet adını belirtir.

    RemoteServiceNamesabit değer türü olan nvarchar(256). Service Brokerbir bayt bayt karşılaştırma eşleştirmek için kullandığı RemoteServiceNamedize. Karşılaştırma duyarlıdır ve geçerli harmanlama dikkate almaz. Hedef hizmet-ebilmek var olmak içinde geçerli örneği Veritabanı Altyapısı, ya da uzak bir örneği Veritabanı Altyapısı.

    • 'RemoteServiceName'
      Konuşma önceliği aşağıdaki için uygulanabilir belirtir.

      • İlişkili hedef hizmet adı eşleşen herhangi başlatıcı konuşma bitiş RemoteServiceName.

      • İlişkili başlatıcı hizmeti adı eşleşen herhangi hedef konuşma bitiş RemoteServiceName.

    • HERHANGİ BİR
      Konuşma öncelik son noktayla ilişkilendirilen uzak hizmetin adı ne olursa olsun herhangi konuşma son nokta için uygulanabilir belirtir.

    Varsayılan değer ANY'tur.

  • PRIORITY_LEVEL = { PriorityValue|DEFAULT }
    Sözleşmeler ve konuşma öncelik belirtilen hizmetleri kullanan tüm konuşma bitiş noktası atamak istediğiniz önceliği belirtir. PriorityValuetamsayı (en yüksek öncelik) 10 için 1'den (en düşük öncelik) hazır olmalıdır. Varsayılan değer 5'tir.

Açıklamalar

Service Brokeröncelik düzeyleri için konuşma bitiş noktaları atar. Öncelik düzeyleri, son noktayla ilişkili işlemleri öncelik denetler. Her görüşme, iki konuşma bitiş noktaları vardır:

  • Başlatıcı konuşma bitiş noktası bir tarafı konuşma başlatıcı hizmeti ve Başlatıcı sıra ilişkilendirir. Başlatıcı konuşma bitiş noktası BEGIN DIALOG deyimi çalıştırdığınızda oluşturulur. Başlatıcı konuşma bitiş noktası ile ilişkili işlemler şunlardır:

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

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

    • Sonraki Görüşme grup başlatıcı sıradan alınıyor.

  • Hedef konuşma bitiş noktası konuşma diğer tarafında hedef hizmet ve sıra ile ilişkilendirir. Görüşme hedef sıraya ileti göndermek için kullanılan hedef konuşma bitiş noktası oluşturulur. Hedef konuşma bitiş noktası ile ilişkili işlemler şunlardır:

    • Hedef sıradan alır.

    • Hedef hizmetinden gönderir.

    • Sonraki Görüşme grup hedef sıradan alınıyor.

Service Brokerkonuşma bitiş noktası oluşturulduğunda konuşma öncelik düzeyleri atar. Görüşme sona kadar konuşma bitiş noktası öncelik düzeyini korur. Yeni öncelikleri ya da varolan öncelikleri değişiklikler varolan konuşmaları için uygulanmaz.

Service Brokerkonuşma bitiş noktası, bitiş noktası özelliklerini en iyi olan sözleşme ve Hizmetleri ölçütleriyle eşleşen konuşma öncelik öncelik düzeyi atar. Aşağıdaki tablo, maç önceliği gösterir:

İşlem Sözleşmesi

İşlem yerel hizmet

İşlemi uzaktan servis

ContractName

LocalServiceName

RemoteServiceName

ContractName

LocalServiceName

HERHANGİ BİR

ContractName

HERHANGİ BİR

RemoteServiceName

ContractName

HERHANGİ BİR

HERHANGİ BİR

HERHANGİ BİR

LocalServiceName

RemoteServiceName

HERHANGİ BİR

LocalServiceName

HERHANGİ BİR

HERHANGİ BİR

HERHANGİ BİR

RemoteServiceName

HERHANGİ BİR

HERHANGİ BİR

HERHANGİ BİR

Service Brokerilk öncelik görünüyor olan belirtilen sözleşme, yerel hizmet ve bu işlem kullanan uzak hizmet eşleştirir. Bulunmazsa, Service Brokerile bir sözleşme ve bu işlemin kullandığı ve nerede uzak hizmet belirtilen herhangi bir eşleşen yerel hizmet öncelikli arar. Bu öncelik tabloda listelenen tüm varyasyonlar için devam ediyor. Eşleşme bulunursa, işlem 5 varsayılan öncelik atanır.

Service Brokerbağımsız olarak her konuşma son nokta için bir öncelik düzeyi atar. Var 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 karşılanmaktadır sağlamalıdır. Başlatıcı ve hedef konuşma bitiş noktaları ayrı veritabanlarında, Konuşma öncelikleri her veritabanı oluşturmanız gerekir. Aynı öncelik düzeyi genellikle her ikisi de bir konuşma için konuşma bitiş belirtilir, ancak farklı öncelik düzeyleri belirleyebilirsiniz.

Öncelik düzeyleri her zaman bir sıradan iletileri veya konuşma Grup tanımlayıcıları alma işlemleri uygulanır. Öncelik düzeyleri de bir örneği gelen iletileri iletirken uygulanan Veritabanı Altyapısıdiğerine.

Öncelik düzeyleri İletileri iletirken kullanılmaz:

  • Bir veritabanı HONOR_BROKER_PRIORITY veritabanı seçeneği olduğu için off ayarlayın. Daha fazla bilgi için, bkz. alter database set seçenekleri (Transact-sql).

  • Aynı veritabanı altyapısı örneği hizmetleri arasında.

  • Tüm Service BrokerKonuşma öncelikleri veritabanında oluşturulan operasyonların bir veritabanında varsayılan öncelikler 5 atanır.

İzinler

Üyeleri için varsayılan bir konuşma öncelik oluşturma izni db_ddladminya db_ownersabit veritabanı rolü ve sysadminsunucu rolü. alter veritabanı izni gerektirir.

Örnekler

A.Her iki yönde bir konuşma için bir öncelik düzeyi atama.

Bu iki Konuşma öncelikleri tüm işlemleri kullanan emin SimpleContractarasında TargetServiceve InitiatorAServiceöncelik düzeyi 3 atanır.

CREATE BROKER PRIORITY InitiatorAToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = InitiatorServiceA,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 3);
CREATE BROKER PRIORITY TargetToInitiatorAPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'InitiatorServiceA',
         PRIORITY_LEVEL = 3);

CREATE BROKER PRIORITY InitiatorAToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = InitiatorServiceA,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 3);
CREATE BROKER PRIORITY TargetToInitiatorAPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'InitiatorServiceA',
         PRIORITY_LEVEL = 3);

B.Bir sözleşme kullanın tüm konuşmaları öncelik düzeyini ayarlama

Bir öncelik düzeyi atar 7adlı bir sözleşme kullanan tüm operasyonlara SimpleContract. Bu hem belirleyen diğer öncelikleri olduğunu varsayar SimpleContractve yerel veya uzak hizmet.

CREATE BROKER PRIORITY SimpleContractDefaultPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 7);

CREATE BROKER PRIORITY SimpleContractDefaultPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 7);

C.Bir veritabanını temel öncelik düzeyini ayarlama.

Konuşma öncelikleri iki belirli hizmetler için tanımlar ve bir konuşma öncelik diğer tüm konuşma bitiş noktaları eşleşen tanımlar. Bu her zaman 5, ancak varsayılan atanan öğelerin sayısını en aza varsayılan önceliği değiştirmez.

CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/ClaimPriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = //Adventure-Works.com/Expenses/ClaimService,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 9);
CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/ApprovalPriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = //Adventure-Works.com/Expenses/ClaimService,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/BasePriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 3);

CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/ClaimPriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = //Adventure-Works.com/Expenses/ClaimService,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 9);
CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/ApprovalPriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = //Adventure-Works.com/Expenses/ClaimService,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY [//Adventure-Works.com/Expenses/BasePriority]
    FOR CONVERSATION
    SET (CONTRACT_NAME = ANY,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 3);

D.Hedef hizmet için üç öncelik düzeylerini hizmetlerini kullanarak oluşturma

Üç düzeyde performans sağlayan bir sistemi destekler: Altın (yüksek), Gümüş (orta), bronz (düşük). Bir sözleşme olduğunu, ancak her düzeyi ayrı başlatıcı hizmeti vardır. Tüm başlatıcı Hizmetleri Merkezi hedef hizmet için iletişim.

CREATE BROKER PRIORITY GoldInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = GoldInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY GoldTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'GoldInitiatorService',
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY SilverInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = SilverInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY SilverTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'SilverInitiatorService',
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY BronzeInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = BronzeInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 2);
CREATE BROKER PRIORITY BronzeTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'BronzeInitiatorService',
         PRIORITY_LEVEL = 2);

CREATE BROKER PRIORITY GoldInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = GoldInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY GoldTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'GoldInitiatorService',
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY SilverInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = SilverInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY SilverTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'SilverInitiatorService',
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY BronzeInitToTargetPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = BronzeInitiatorService,
         REMOTE_SERVICE_NAME = N'TargetService',
         PRIORITY_LEVEL = 2);
CREATE BROKER PRIORITY BronzeTargetToInitPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SimpleContract,
         LOCAL_SERVICE_NAME = TargetService,
         REMOTE_SERVICE_NAME = N'BronzeInitiatorService',
         PRIORITY_LEVEL = 2);

E.Birden çok hizmet sözleşmeleri kullanarak için üç öncelik düzeylerini oluşturma

Üç düzeyde performans sağlayan bir sistemi destekler: Altın (yüksek), Gümüş (orta), bronz (düşük). Her düzey, ayrı bir sözleşme vardır. Bu öncelikleri sözleşmeleri kullanan oturumlar tarafından başvurulan diğer hizmetler için geçerlidir.

CREATE BROKER PRIORITY GoldPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = GoldContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY SilverPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SilverContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY BronzePriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = BronzeContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 2);

CREATE BROKER PRIORITY GoldPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = GoldContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 6);
CREATE BROKER PRIORITY SilverPriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = SilverContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 4);
CREATE BROKER PRIORITY BronzePriority
    FOR CONVERSATION
    SET (CONTRACT_NAME = BronzeContract,
         LOCAL_SERVICE_NAME = ANY,
         REMOTE_SERVICE_NAME = ANY,
         PRIORITY_LEVEL = 2);

Ayrıca bkz.

Başvuru

alter broker ÖNCELIK (Transact-sql)

BEGIN DIALOG konuşma (Transact-sql)

Sözleşme (Transact-sql) oluştur

SIRA (Transact-sql) oluştur

Servis (Transact-sql) oluştur

drop broker ÖNCELIK (Transact-sql)

get konuşma group (Transact-sql)

(Transact-sql) alma

SEND (Transact-sql)

sys.conversation_priorities (Transact-sql)