Aracılığıyla paylaş


Etkinleştirme oluşuyor olduğunda anlama

The Service Broker activation process consists of two steps.İlk olarak, Service Broker belirler etkinleştirme olup gerekli.İkinci, Service Broker etkinleştirme oluşup oluşmadığını belirler.Tam işlem etkinleştirme iç ve dış etkinleştirme için farklı olsa da, söz konusu genel kavramları ya da strateji aynıdır.

Etkinleştirme gerekli olup olmadığını belirleme

Yeni bir sıra okuyucu gerçekleştirmek için yararlı iş yoktur her etkinleştirme gereklidir.Queue monitors determine whether activation is necessary.Service Broker creates a queue monitor for each queue with activation STATUS = ON or for which a QUEUE_ACTIVATION event notification has been registered.dinamik yönetim görünümü sys.dm_broker_queue_monitors (Transact-SQL) Listeler sıra monitör etkin örnek.Her sıra monitör aşağıdakileri izler:

Sıraya alma için hazır olan iletileri içerip

En son ne zaman bir sıraya al deyim bir boş sonuç küme döndürdü

Kaç etkinleştirme depolanan yordamlar, sıra için çalışmakta olan.

Sıra monitör etkinleştirme yayınlaması ve bir zaman gerekli veya daha aşağıdaki olaylar oluşur olup olmadığını denetler:

  • Yeni bir ileti sırası geldiğinde.

  • SQL Server sıra için bir Al deyim yürütür.

  • Al deyim içeren bir hareketi geri alır.

  • Tüm saklı yordamları sıra monitör çıkış başladı.

  • SQL Server bir sıra için alter deyim yürütür.

Etkinleştirme, aşağıdakilerden biri doğru olduğunda gereklidir:

  • Yeni bir ileti okunmamış ileti içeren bir sıraya ulaşan ve sıra için çalışan hiçbir etkinleştirme depolanan yordamlar vardır.

  • Okunmamış iletiler sıraya içerir, bir get konuşma group deyim veya bir Al deyim where yan tümce tümce tümce ve hiçbir get konuşma group deyim olmadan veya Al deyim where yan tümce tümce tümce birkaç saniye için bir boş sonuç küme döndürdü olmadan hiçbir oturum bekliyor.Etkinleştirilmiş yordamları yeterince hızlı okumak mümkün değildir çünkü diğer bir deyişle ne zaman iletileri sıraya Biriktiriyor.

Gerçekte, bu yordam sırası işleme sırası okuyucu sayısı ile gelen ileti trafiği engelleyecek olup olmadığını söylemek sıra İzleyici verir.Bu yaklaþýmý kullanmaktadýr dikkat edin konuşma grubu dikkate kilitleme.Yalnızca bir sıra çünkü okuyucu en bir saat sıra okuyucu yanıt sıradaki okunmamış iletilerin sayısı gibi daha basit bir yaklaşım olarak başlayan bir konuşma için işlem iletilerinin kaynak israfına neden.Bunun yerine, Service Broker etkinleştirme dikkate alır mı yeni bir sıra okuyucu vardır do. yararlı çalışmaları

Örneğin, bir sıra işlenmemiş ileti tek bir konuşma üzerinde çok sayıda içerebilir.Bu durum, yalnızca bir sıra okuyucu iletilerini işleyebilir.Sıra monitör başka bir sıra okuyucu etkinleştirir.İkinci sıra okuyucu bekler Al ' deyim, tüm iletileri tek bir konuşmaya ait olmadığından.Sıradaki tüm iletilerin aynı konuşmaya ait ve ikinci sıra okuyucu çalışan kalır sürece, başka bir sıra okuyucu sıra İzleyici başlamaz.

Etkinleştirme oluşuyor olup olmadığını belirleme

Bir kez Service Broker belirler etkinleştirme gerekli olduğunu Service Broker etkinleştirme oluşup karar vermeniz gerekir.

İç etkinleştirme için sıra Monitör'ü etkinleştirme etkinleştirir saklı yordam çalışan programların sayısını max_queue_readers değerden daha düşük olduğunda, sıra için ayarlayın.Çalışan programların sayısını max_queue_readers değerden büyük veya eşit ise, sıra İzleyici yeni başlamaz örnek saklı yordam.Yönetim görünümü sys.dm_broker_activated_tasks (Transact-SQL) tarafından başlatıldı saklı yordamlar hakkında bilgi içeren Service Broker.

Harici uygulamalar için Service Broker olan hiçbir bilgi sayısına göre farklı sıra okuyucular, olması ile çalışma sırası.Ayrıca, bazı başlama saat etkinleştirme olay ortaya çıkar, bir okuyucu okuma sırası başladığı saat arasında gerekli olabilir.Bu nedenle, Service Broker cevap. harici bir uygulama için bir saat aşımı değeri sağlarsaat aşımı sırasında Service Broker değil üretmek başka bir bildirim.Uygulama çağrıları al sırasına veya saat aşımı saat, sonra Service Broker etkinleştirme gerekli ise başka olay bildirim oluşturur.Daha fazla sıra okuyucuların olayları okumak için gerekli olup olmadığını belirlemek için program çalışırken bir dış uygulama olay bildirimlerini izler.