NServiceBus: Что происходит с опубликованным сообщением, если мой абонентский компьютер выключен?

С простым Pub/Sub в NServiceBus я знаю, что если мое приложение подписчика не запущено, то опубликованные сообщения просто будут накапливаться в очереди до тех пор, пока они не будут обработаны. Но где они скапливаются, если вся машина не работает? Поскольку сообщение не может быть доставлено даже в мою очередь подписчиков, есть ли какая-то очередь, в которой они сидят на издателе? Я хотел бы иметь возможность видеть, какие сообщения ожидают издателя, когда машина подписчика не работает.

Есть ли способ их увидеть?


person skb    schedule 18.08.2010    source источник


Ответы (1)


Msmq, транспорт по умолчанию для NServiceBus, использует для доставки сообщений шаблон сохранения и пересылки. Это означает, что когда вы отправляете сообщение на другой компьютер, оно сначала «сохраняется» на компьютере, который отправляет сообщение, а затем «пересылается» на компьютер-получатель. Это означает, что исходящие сообщения на недостижимые машины будут храниться на машине-отправителе до тех пор, пока они не будут доставлены. Msmq использует терминологию «исходящих очередей» для временного хранения доставляемых сообщений. Если принимающая машина не работает, сообщение будет находиться в «исходящей очереди» до тех пор, пока не будет доставлено. Если вы посмотрите на плагин MMC «Очередь сообщений», вы найдете папку под названием «Исходящие очереди», где ваши опубликованные сообщения будут отображаться, если подписчик не работает.

ИМО, лучшим источником информации о Msmq является блог Джона Брейквелла: http://blogs.msdn.com/b/johnbreakwell/archive/tags/msmq/

Дополнительная информация о NServiceBus в сочетании с Msmq:

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

Надеюсь это поможет!

person Andreas Öhlund    schedule 18.08.2010
comment
Просто в качестве пояснения: вопрос касается NServiceBus. Так получилось, что транспорт по умолчанию, используемый NServiceBus, — это MSMQ. nservicebus.com/Msmq.aspx - person Nathan; 20.08.2010