NServiceBusを使用してメッセージを処理するアプリケーションがあり、デバッグ中に例外がスローされ、メッセージが失われていることがわかりました。メインキューとエラーキューの両方をチェックしたところ、メッセージは一度だけ試みられました。処理中に例外が発生した場合、NServiceBusがメッセージをエラーキューに移動させない原因は何ですか?
これが起こる可能性のある一般的な落とし穴はありますか?
Windows 7 64ビットでNServiceBus 2.0.0.1219(2.0 RTM)を使用します。以前のバージョンと同じ問題の他の質問: What could prevent NServiceBus from moving messages to the error queue if there are exceptions when processing?
ウェブサイト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>
管理者の設定を含めることはできますか?また、NSB用にMSMQ/DTCが正しくインストールされていることを確認してください。これはダウンロード(ツール\ MsmqUtils)のランナーツールを使用して確認できます。 –
MSMQ/DTCがインストールされているので、チップをありがとうございます。関連する設定ファイルセクションを質問に追加しました。 – LucG
私はそれがメッセージの転送と関係があるのだろうかと思います。 "ForwardReceivedMessagesTo"を削除してもそれが起こりますか?その間に私はレプロを試してセットアップします。 –