2008-11-13 57 views
6

Birisi bana teslimatta başarısız olan iletileri işlemek için bu 3 yaklaşım arasındaki farkı açıklayabilir mi? ne zaman olur arızaları WCF ve MSMQ hatası yönetimi

ben "Programlama WCF" var, ama işlemek için bir yanıt hizmetini kullanma

  • Zehir Kuyruk hizmeti
  • Ölü-Letter Kuyruk hizmet
  • Gerçekten anlamıyorum bunlardan birini diğerinden veya birden fazla kullanmanın mantıklı olacağını. Teşekkürler!

cevap

8

Ölü ve zehir iki farklı kavramdır. Zehir iletileri, sıradan okunabilen iletilerdir, ancak kodunuz bunun nasıl işleneceğini bilmez, böylece kodunuz bir istisna oluşturur. Bu bir süre devam ederse, bu mesajın başka bir sıraya konmasını istersiniz, böylece diğer iletileriniz ele alınabilir. Bunun için iyi bir yaklaşım on MSDN açıklanmıştır.

Ölü bir mektup, sıra tarafından işlenmeyen bir iletidir. Ağ kesildi veya alıcı MSMQ bilgisayarı kapatıldı. Bunun gibi bir şey. Mesaj, Windows tarafından bir süre sonra otomatik olarak ölü kuyruğa alınacaktır. Öyleyse ölü kuyruğu izleyen bir servis yazmanız tavsiye edilir.

2

Zehir iletisi/ölü mektup ileti sıraları, artık teslim edilmeye çalışılmayacak bir sıraya teslim edilemediği belirlenen iletileri yerleştirmek için kullanılır. El ile başarısız mesajlara bir göz atmak ve daha sonra bunları işlemek istiyorsanız bunu yaparsınız. Kötü mesajların tekrar tekrar tekrar denemek suretiyle sisteminizin performansını düşürmesini önlemek istediğinizde bu tür sıraları kullanırsınız. Diğer taraftan, gönderenin bildirimi yapan bir hata olduğunu bildirmek için bir yanıt servisi kullanılacaktır. Genellikle bu durumda, kötü iletiyi el ile işlemeyi planlamıyorsunuz ve istek reddedildiğinden iletiyi gönderen sistemin izin vermesi gerekiyor.

Bunların özel olmadığına dikkat edin. Kuyrukları kullanıyorsanız, mesaj serileştirme işleminin sıradaki iletileri kırmaya yetecek kadar değişme ihtimali vardır; bu durumda yanıt hizmetini kullanmış olsanız bile yine de bir ölü kuyruğa sahip olmak isteyebilirsiniz.

+0

Cevabı takdir ediyorum, ama sorduğum gibi değil. Bir şey için, Zehir ve Ölü Mektubu arasındaki farkı bilmek istiyorum. Ayrıca, bu kuyrukları sıraya koyan hizmetlerden, sıraların kendileriyle ilgili olduğumdan daha fazlasını istiyorum. – chessguy