Что может помешать NServiceBus перемещать сообщения в очередь ошибок, если при обработке возникают исключения? - PullRequest
2 голосов
/ 22 ноября 2010

У меня есть приложение, использующее NServiceBus для обработки сообщений, и во время отладки я обнаруживаю, что могут возникать исключения и сообщение теряется. Я проверил как основную, так и очереди ошибок, и сообщение было предпринято только один раз.

Существуют ли какие-либо распространенные ловушки, которые могут привести к этому?

Я использую NServiceBus 2.0.0.1219 (2.0 RTM) в Windows 7 64 бит. Другой вопрос с той же проблемой на старой версии: Что может помешать NServiceBus перемещать сообщения в очередь ошибок, если при обработке возникают исключения?

Веб-сайт Bus.Send команда к конечной точке обработчика команд.

Файл конфигурации сайта:

<MsmqTransportConfig InputQueue="WebAppTest_InputQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5"/>

<UnicastBusConfig ForwardReceivedMessagesTo="AuditQueue">
  <MessageEndpointMappings>
    <add Messages="ABC.ServiceBus.Commands" Endpoint="CommandProcessor_InputQueue"/>
  </MessageEndpointMappings>
</UnicastBusConfig>

<DBSubscriptionStorageConfig>
  ...
</DBSubscriptionStorageConfig>

Файл конфигурации обработчика команд:

<MsmqTransportConfig InputQueue="CommandProcessor_InputQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5" />

<UnicastBusConfig ForwardReceivedMessagesTo="AuditQueue">
  <MessageEndpointMappings>
    <add Messages="ABC.ServiceBus.Commands" Endpoint="WebAppTest_InputQueue"/>
  </MessageEndpointMappings>
</UnicastBusConfig>

<DBSubscriptionStorageConfig>
  ...
</DBSubscriptionStorageConfig>

1 Ответ

1 голос
/ 29 ноября 2010

Поскольку пересылка сообщений является частью той же транзакции, что и получение сообщения, при сбое приема пересылка завершается неудачей. Я думаю, что если выдается исключение, вы, вероятно, хотите, чтобы оно попадало в очередь ошибок, а не в очередь аудита, поскольку оно не было получено правильно. Если вы хотите видеть все, что происходит, независимо от этого, лучше подать дневник.

...