2010-08-18 4 views
7

Con Pub/Sub simple en NServiceBus, sé que si mi aplicación de suscriptor no se está ejecutando, los mensajes publicados simplemente se acumularán en la cola hasta que puedan procesarse. Pero, ¿dónde se acumulan si toda la máquina se cae? Dado que el mensaje ni siquiera se puede entregar a mi cola de suscriptor, ¿hay alguna cola en el editor? Me gustaría poder ver qué mensajes están esperando en el editor cuando la máquina del suscriptor está inactiva.NServiceBus: ¿Qué sucede con un mensaje publicado si mi máquina de suscriptor está apagada?

¿Hay alguna manera de verlos?

Respuesta

8

Msmq, el transporte predeterminado para NServiceBus, utiliza el patrón de almacenamiento y reenvío para entregar mensajes. Esto significa que cuando envía un mensaje a otra máquina, primero se "almacena" en la máquina que envía el mensaje y luego se "reenvía" a la máquina receptora. Esto significa que los mensajes salientes a máquinas inalcanzables se almacenarán en la máquina de envío hasta que puedan entregarse. Msmq usa la terminología de "colas salientes" para el almacenamiento temporal de los mensajes que se están entregando. Si la máquina receptora está inactiva, el mensaje se colocará en la "cola de salida" hasta que pueda entregarse. Si observa el complemento de MMC "Message Queue Server", encontrará una carpeta llamada "Colas de salida", aquí es donde aparecerán sus mensajes publicados si el suscriptor está caído.

OMI, el mejor recurso para obtener información sobre Msmq es el blog de John Breakwells: http://blogs.msdn.com/b/johnbreakwell/archive/tags/msmq/

Más información sobre NServiceBus combinado con Msmq:

http://docs.particular.net/nservicebus/msmq/

Espero que esto ayude!

+0

Solo como punto de aclaración: la pregunta es sobre NServiceBus. Ocurre que el transporte predeterminado utilizado por NServiceBus es MSMQ. http://www.nservicebus.com/Msmq.aspx – Nathan

+0

Absolutamente correcto, respuesta actualizada ... ¡Gracias! –

Cuestiones relacionadas