2016-03-30 20 views
0

Azure Workerrole'da bir NServiceBus uç noktası çalıştırıyorum. Tüm teşhisleri şu anda masa deposuna gönderiyorum. DLQ'mda mesajlar alıyordum ve neden masaüstümde saklanmış istisnalar göremediğimi anlayamadım.NServiceBus istisnaları INFO iletileri olarak kaydedildi

NSB'nin istisnaları INFO olarak günlüğe kaydettiği ortaya çıkıyor, bu yüzden bunları tüm gerçek ayrıntılı günlük kayıtlarına kolayca yerleştiremedim.

Benim durumumda, bir komut işleyicisinin bağımlılıkları çözülemedi, böylece Autofac bir istisna atar. İstisna neden atıldığını anlıyorum, neden sadece INFO olarak kaydedildiklerini anlamıyorum. Mesaj, DLQ'm içinde biter ve nedenini anlamak için sadece bir INFO-izlemem var.

NSB'de istisnaların bu şekilde ele alınmasının bir nedeni var mı?

+0

"NSB, istisnaları INFO olarak günlüğe kaydeder" diyorsunuz, işleyicinin istisnaları veya tam anlamıyla tüm özel durumları yüklemede başarısız olduğu anlamına mı geliyor? İşleyici yüklü ise ve istisna atılırsa, hata olarak kaydedilir. Lütfen açıklayabilir misiniz? –

+0

Yükleyicinin günlük olarak bir INFO olarak görünmemesi anlamına gelir: 2016-03-31 08: 32: 45.910 INFO NServiceBus.Unicast.Transport.TransportReceiver İleti işlenemedi Autofac.Core.DependencyResolutionException: Hiçbiri 'CommandHandler' türündeki 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' ile bulunan kurucular mevcut servisler ve parametreleri ile çağrılabilirler. Bunun bir INFO yerine bir hata olarak kaydedilmesini beklerdim. – Laila

cevap

1

NServiceBus, bir ileti işleme girişimi sırasında gerçekleştiğinden, kapsayıcı sorununu bir hata olarak kaydetmiyor. İlk Seviye Tekrar Denemesi ve İkinci Seviye Tekrar Denemesi yapılacaktır. SLR yürütüldüğünde, yeniden deneme hakkında bir WARN kaydeder. Sonunda, bir ileti işleme başarısız olur ve bir HATA iletisi günlüğe kaydedilir. Bunu üretmek için NSB and Autofac sample kullanılabilir.

uç nokta bir dışarı ölçekli rolle çalışıyorsa ve MadDeliveryCount tüm rol örneklerini yerleştirmek ve her bir örnek yapacağını sayımı yeniden denemek için yeterince büyük değil, bu NServiceBus uç nokta örneği hala sahip olduğunu düşündüğüne ederken max var ulaşan DeliveryCount sonuçlanacaktır Bir hata sırasına mesaj göndermeden ve bir hatayı günlüğe kaydetmeden önce dener. question here benzer MaxDeliveryCount artırmak için tavsiye ederim.

SLR sayacı için yerel bir desteğe sahip olması için bir NServiceBus issue açık. Sesinizi konuya ekleyebilirsiniz. NServiceBus'un (V6) bir sonraki sürümü istisna ile birlikte mesaj kimliğini günlüğe kaydedecektir, böylece en azından DLQ ve günlük dosyasındaki mesaj arasında korelasyon kurabilirsiniz.