Service Broker, SQL Server içinde mesajlaşma ve kuyruklama işlemlerini yöneten bir mimaridir. Bu mimari, arka planda belirli görevleri (tasks) yerine getirmek için “worker thread” adı verilen iş parçacıklarını kullanır.
BROKER_TASK_STOP bekleme tipi, Service Broker’a bağlı bir iş parçacığının görevini tamamladığını ve kapatılmaya (terminate edilmeye) hazır olduğunu ifade eder. SQL Server, bu thread’i sonlandırmadan veya havuzuna geri almadan hemen önce bu bekleme kaydedilir.
Bu bekleme tipi, Service Broker’ın “temizlik” ve “optimizasyon” anlarında karşımıza çıkar:
- Görev Tamamlanması: Bir Service Broker aktivasyon prosedürü veya iç kuyruk işlemi bittiğinde, ilgili thread serbest bırakılırken bu bekleme gerçekleşir.
- Thread Havuzu Yönetimi: SQL Server, boşta kalan (idle) Service Broker thread’lerini kaynak tüketmemesi için sonlandırmaya karar verdiğinde görülür.
- Hata veya İptal Durumları: Bir Service Broker görevi beklenmedik bir şekilde durdurulduğunda veya el ile iptal edildiğinde bu sinyal oluşur.
BROKER_TASK_STOP, SQL Server topluluğunda “Zararsız Bekleme” (Benign Wait) veya “Boşta Bekleme” (Idle Wait) olarak sınıflandırılır. Bu bekleme tipinin toplam bekleme süresi içinde yüksek bir yüzdeye sahip olması, veritabanınızda bir yavaşlık olduğu anlamına gelmez. Aksine, Service Broker’ın görevlerini bitirip düzenli bir şekilde kapandığını gösterir.
Eğer Service Broker ile ilgili bir yavaşlık yaşıyorsanız, bakmanız gereken asıl “tehlikeli” bekleme tipleri BROKER_TRANSMITTER, BROKER_RECEIVE_WAITFOR veya BROKER_EVENTHANDLER gibi tiplerdir.
Eğer BROKER_TASK_STOP değeri izleme araçlarınızda (SQL Sentry, Redgate, DPA vb.) çok yüksek görünüyorsa ve bu durum sizi rahatsız ediyorsa:
- Yoksayın (Filtering): Çoğu veritabanı yöneticisi, wait stats analizleri yaparken bu tipi “Ignore List” (Yoksayılacaklar Listesi) içine ekler.
- Service Broker Kullanımı: Eğer sisteminizde Service Broker aktif olarak kullanılmıyorsa (ancak veritabanı seviyesinde ENABLE_BROKER açıksa), arka plandaki rutin kontroller bu beklemeyi artırabilir. Kullanmıyorsanız kapatmayı düşünebilirsiniz.
- Kuyruk Durumu: Kuyruklarınızdaki (sys.service_queues) mesaj trafiğini kontrol edin. Çok sık açılıp kapanan (short-lived) görevler bu istatistiği şişirir.
Başka makalede görüşmek dileğiyle..
“Andolsun zamana ki, insan gerçekten ziyan içindedir. Ancak iman edip de salih ameller işleyenler, birbirlerine hakkı tavsiye edenler, birbirlerine sabrı tavsiye edenler başka (onlar ziyanda değillerdir).” Asr Suresi
