Aracılığıyla paylaş


(Transact-SQL) ARACıSı ÖNCELIK CREATE

Bir öncelik düzey ve hangi belirlemek için ölçüt kümesi tanımlar. Service Broker öncelik düzeyini atamak için görüşmeleri'ı tıklatın. Öncelik düzey aynı bileşimi, sözleşmeler ve konuşmaya önceliği belirtilen hizmetleri kullanan tüm konuşma uç noktası atanır.1 (Düşük) arasında bir değer 10 (yüksek) aralığındaki öncelikler.Varsayılan değer 5'dir.

Topic link iconTransact-SQL sözdizimi kuralları

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şmaya önceliğinin adını belirtir.The name must be unique in the current database, and must conform to the rules for Database Engineidentifiers.

  • küme
    Bir konuşmaya konuşma öncelik uygulanıyorsa, belirlemek için ölçütleri belirler.Belirtilmişse, küme, en az bir ölçüt içermelidir: CONTRACT_NAME LOCAL_SERVICE_NAME, REMOTE_SERVICE_NAME veya PRIORITY_LEVEL. küme belirtilmişse, varsayılan üç ölçütlerini küme.

  • CONTRACT_NAME = {ContractName | TÜM}
    Specifies the name of a contract to be used as a criterion for determining if the conversation priority applies to a conversation.ContractName is a Database Engine identifier, and must specify the name of a contract in the current database.

    • ContractName
      Konuşma öncelik yalnızca BEGIN DIALOG deyim, görüşmeyi başlatan, ON SÖZLEşMEDEN burada belirtilen konuşmaları uygulanabilir belirtir. ContractName.

    • TÜM
      Konuşma öncelik herhangi bir konuşmaya ne olursa olsun, kullandığı anlaşma uygulanabileceği olduğunu belirtir.

    ANY varsayılandır.

  • LOCAL_SERVICE_NAME = {LocalServiceName | TÜM}
    Konuşma öncelik uygulanır, belirlemek için bir ölçüt olarak kullanılacak bir hizmet adını belirtir bir konuşma uç noktası.

    LocalServiceName olan bir Database Engine tanıtıcısı. Bu geçerli veritabanındaki bir hizmet adını belirtmeniz gerekir.

    • LocalServiceName
      Konuşma öncelik aşağıdakilere uygulanabilir olduğunu belirtir:

      • Başlatıcı hizmet adıyla eşleşen tüm başlatıcı konuşma uç noktası LocalServiceName.

      • Hedef hizmet adıyla eşleşen tüm hedef konuşma uç noktası LocalServiceName.

    • TÜM

      • Konuşma öncelik için uygulanabilir olduğunu belirtir konuşma uç noktası bakılmaksızın bitiş noktası tarafından kullanılan bir yerel hizmet adı.

    ANY varsayılandır.

  • REMOTE_SERVICE_NAME = {' RemoteServiceName' | TÜM}
    Konuşma öncelik uygulanır, belirlemek için bir ölçüt olarak kullanılacak bir hizmet adını belirtir bir konuşma uç noktası.

    RemoteServiceName is a literal of type nvarchar(256).Service Broker uses a byte-by-byte comparison to match the RemoteServiceName string.Karşılaştırma durum - küçük harf duyarlı ve geçerli harmanlama dikkate almaz.Hedef hizmet geçerli örnek olabilir Database Engine, veya bir uzak örneğini Database Engine.

    • 'RemoteServiceName'
      Konuşma öncelik aşağıdakilere uygulanabilir olduğunu belirtir:

      • Ilişkili hedef hizmet adıyla eşleşen tüm başlatıcı konuşma uç noktası RemoteServiceName.

      • Ilişkili başlatıcı hizmet adıyla eşleşen tüm hedef konuşma uç noktası RemoteServiceName.

    • TÜM
      Konuşma öncelik için uygulanabilir olduğunu belirtir konuşma uç noktası bakılmaksızın son noktayla ilişkilendirilen uzak hizmet adı.

    ANY varsayılandır.

  • PRIORITY_LEVEL = {PriorityValue | VARSAYILAN }
    Specifies the priority to assign any conversation endpoint that use the contracts and services specified in the conversation priority.PriorityValue must be an integer literal from 1 (lowest priority) to 10 (highest priority).Varsayılan değer 5'dir.

Remarks

Service Broker Öncelik düzeyleri için konuşma bitiş noktası atar.Öncelik düzeyleri, son noktayla ilişkilendirilen operasyonların önceliğini denetleyin.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ı 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.Görüşmeyi bir iletinin hedef sıra göndermek için kullanılan hedef konuşma uç noktası oluşturulur.Hedef ile ilişkili operasyonlar konuşma uç noktası içerir:

    • Alan hedef sıra.

    • Hedef gönderir hizmet.

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

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 düzeyini bitiş noktasının özelliklerini, anlaşma ve hizmetleri ölçütlerini en iyi eşleşen konuşma öncelik atar.Aşağıdaki tablo eşleşme önceliği gösterir:

Işlem anlaşma

Işlem yerel hizmet

Uzak hizmet işlemi

ContractName

LocalServiceName

RemoteServiceName

ContractName

LocalServiceName

TÜM

ContractName

TÜM

RemoteServiceName

ContractName

TÜM

TÜM

TÜM

LocalServiceName

RemoteServiceName

TÜM

LocalServiceName

TÜM

TÜM

TÜM

RemoteServiceName

TÜM

TÜM

TÜM

Service Broker öncelik için önce arar, belirtilen anlaşma, yerel hizmet ve uzak hizmetin işlem kullanır, eşleştirir.Biri, bulunamazsa Service Broker bir anlaşma ve işlem kullanan, ve uzak hizmetin ANY belirtildi eşleşen yerel hizmet önceliğiyle arar. Öncelik tabloda listelenen tüm çeşitleri için devam eder.Eşleşme bulunursa, operasyon, 5 varsayılan öncelik atanır.

Service Broker bağımsız olarak, her konuşmaya son nokta için bir öncelik düzey atar.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.Aynı öncelik düzey için iki görüşme konuşma bitiş noktaları genellikle belirtilir, ancak farklı öncelik düzeyleri belirleyebilirsiniz.

Ö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üzeyleri de örnek gelen iletileri iletirken uygulanan Database Engine başka.

Öncelik düzeyleri, iletileri iletirken kullanılmaz:

  • Bir veritabanından HONOR_BROKER_PRIORITY veritabanı seçeneği KAPALı olarak küme.Daha fazla bilgi için bkz:DATABASE küme seçenekleri (Transact-SQL) ALTER.

  • Aynı örneğini Veritabanı Altyapısı'ndaki hizmetler arasında.

  • Tümü Service Broker hiçbir konuşma öncelikleri veritabanında oluşturulan bir veritabanı işlemleri varsayılan öncelikler 5 atanır.

İzinler

Bir görüşmeyi öncelik varsayılan db_ddladmin ya da db_owner veritabanı rollerini sabit ve sysadmin sabit sunucu rolü oluşturma izni.ALTER veritabanı izni gerektirir.

Örnekler

C.Bir öncelik düzey için iki yönlü bir görüşme, atama.

Bu iki konuşma öncelikleri tüm işlemler, kullanmasını sağlayın. SimpleContract arasında TargetService ve InitiatorAService öncelik düzey 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);

b.Öncelik ayarı düzey anlaşma kullanan tüm görüşmeleri için

Bir öncelik düzey biri atar. 7 adlı bir anlaşma kullanan tüm operasyonlara SimpleContract. Bu ikisini birden belirtin hiçbir öncelikleri olduğunu varsayar. SimpleContract yerel veya uzak bir hizmet.

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.

Tüm konuşma bitiş uyan bir görüşmeyi öncelik'ı tanımlar ve konuşma öncelikleri iki belirli hizmetleri tanımlar.Bu, her zaman 5'dir, ancak varsayılan olarak atanan madde sayısını en aza varsayılan öncelik yerini almaz.

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.Bir hedef hizmet üç öncelik düzeyleri hizmetlerini kullanarak oluşturma

Üç düzeyde bir performans sağladığı bir sistem destekler: Altın (yüksek), Gümüş (Orta) ve Bronz (düşük). Bir anlaşma, ancak ayrı bir başlatıcı hizmet her düzey vardır.Tüm başlatıcı Hizmetleri için merkezi bir hedef hizmet iletişim kurarlar.

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.Üç öncelik düzeyi için birden çok Hizmet sözleşmeleri kullanarak oluşturma

Üç düzeyde bir performans sağladığı bir sistem destekler: Altın (yüksek), Gümüş (Orta) ve Bronz (düşük). Her düzey için ayrı bir anlaşma vardır.Bu öncelikleri sözleşmeler kullanan konuşmaları tarafından başvurulan tüm 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);