2016-03-30 13 views
0

NSB 5 çalıştırıyorum ve NHibernate Persistence kullanıyorum ve MaximumConcurrencyLevel 10'a ayarlıyım. Bir SSIS paketi yürüten saklı proc çağrısı yapan bir işleyicim var. Bu paket çalıştırmak için önemsiz bir süre alır. Bu mesaj tipi her ele alındığında, diğer tüm mesaj işleme duraklarının durduğunu fark ettim. SQL Profiler aracılığıyla NSB'nin arka planda durduğu sıra çizelgesinin sürekli sorgulanmasının ve NSB'nin yalnızca bir iletiyi ele geçirmesine rağmen kuyruğa gönderilen tüm ekstra iletilerin ele alınmadığını fark ettim.NServiceBus - Uzun süredir işleyici, diğer iletilerin işlenmesini engelliyor

Veritabanı komutlarının tamamlanması uzun zaman aldığı için kuyruğu engelleyen işleyicilerle başa çıkmak için herhangi bir yönerge veya bilinen sorun var mı?

cevap

1

10 iş parçacığı meşgul gibi geliyor, bu yüzden bitiş noktası engelleniyor, bunu test edebilir misiniz?

Ben kendi süreci

yap anlamda bu mesajı işleyicisi barındırma önerirsiniz?

+0

Sorunu, sırayı temizleyerek, bu bir ileti türünü sıraya ekleyerek ve sonra bu iletiyi işlerken sıraya ek iletiler ekleyerek yeniden oluşturabilirim. İlk mesajlar tamamlanana kadar ek mesajlar işlenmez. Belirli bir işleyici için başka bir hizmet, uç nokta ve kuyruk oluşturma, son çare seçeneğidir. – CheckRaise

+0

Bunu hata ayıklamada yapıyor musunuz? NServiceBus, hata ayıklama modunda bir kerede yalnızca bir iletiyi işleyecek, bunu bir sürüm oluşturmada deneyebilir misiniz? –

+0

Sürüm oluşturma işleminde bile, belirli ileti işleyicisine ulaştıktan sonra sıradaki iletileri işlemeyi durdurur. Yine de, gerilimi arttıran geçerli bir lisans kullanıyorum. – CheckRaise

İlgili konular