2008-11-13 21 views
6

¿Alguien me puede explicar la diferencia entre estos 3 enfoques para procesar mensajes que fallan en la entrega?WCF and MSMQ failure handling

  • servicio de veneno cola de servicio
  • cola de mensajes no entregados
  • El uso de un servicio de respuesta para manejar los fallos

tengo "Programación WCF", pero no entiendo muy bien cuando lo haría utilizar uno de estos sobre otro, o cuando tendría sentido usar más de uno de ellos. ¡Gracias!

Respuesta

8

Dead y poison son dos conceptos diferentes. Los mensajes de Poison son mensajes que se pueden leer desde la cola, pero su código no sabe cómo manejarlos, por lo que su código ofrece una excepción. Si esto continúa por un tiempo, desea que este mensaje se coloque en una cola diferente para que sus otros mensajes puedan ser manejados. Un buen enfoque para esto se describe on MSDN.

Una letra muerta es un mensaje que ni siquiera es manejado por la cola. La red no funciona o la computadora receptora MSMQ está apagada. Algo como eso. El mensaje se colocará automáticamente en la cola muerta después de algún tiempo por Windows. Por lo tanto, es aconsejable escribir un servicio que supervise la cola muerta.

2

Las colas de mensajes de mensaje venenoso/mensaje muerto se utilizan para colocar mensajes que se ha determinado que no se pueden entregar en una cola que ya no intentará entregarlos. Haría esto si quisiera ver manualmente los mensajes fallidos y procesarlos en un momento posterior. Utiliza este tipo de colas cuando desea evitar que los mensajes incorrectos degraden el rendimiento de su sistema volviendo a intentarlo una y otra vez.

Por otro lado, se usaría un servicio de respuesta para notificar al remitente que hubo un error al procesar el mensaje. Normalmente, en este caso, no tiene previsto procesar manualmente el mensaje incorrecto y debe dejar que el sistema que envió el mensaje rechace la solicitud.

Tenga en cuenta que estos no son exclusivos. Si usa colas, siempre existe la posibilidad de que la serialización del mensaje cambie lo suficiente como para interrumpir los mensajes que están en la cola, en cuyo caso es posible que desee tener una cola inactiva incluso si está utilizando un servicio de respuesta.

+0

Agradezco la respuesta, pero no es exactamente lo que pregunté. Por un lado, me gustaría saber la diferencia entre Poison y Dead Letter. Además, estoy preguntando más sobre los servicios que procesan estas colas que sobre las colas. – chessguy