4

私は、多くの場合、正常に機能する大量輸送の物語を実装しました。ただし、メッセージがエラー キューに移動したり、消えたように見える場合があります。私はRabbitMQを使用しています。

知りたいこと: 1. メッセージがエラー キューに送られる理由/例外メッセージを取得するにはどうすればよいですか? (注: 私のハンドラー ロジックは try-catch ブロック内にあるため、これらのエラーはハンドラー ロジックが呼び出される前でも発生しているようです) 2. 失われたメッセージの原因は何ですか?

前もって感謝します。

4

1 に答える 1

6

私はこれを理解しているようです: 例外を取得するには、NLog (または log4Net) を構成し、適切な NLogIntegration ライブラリへの参照を追加し、最後にサービス バスの初期化に sbc.UseNLog(); を含めます。(NLog の場合)。これをカバーするオンラインのドキュメントはないようです。NLogIntegration ライブラリのメソッドを見て、それを理解する必要がありました。

メッセージがエラー キューに送られる問題について、エラー メッセージは「メッセージの再試行制限を超えました rabbitmq://localhost/workers_sagas:08cf6e3e-d772-e62b-1803-73779fa60000」でした。どうやら、これは、Saga Persistence に In-Memory リポジトリを使用していたことが原因でした。そのため、サガをホストしているプロセスが再起動されるたびに、まだ完了していないすべてのサガがリポジトリに存在しなくなったため、上記のエラーが発生しました。

于 2012-10-02T02:29:19.320 に答える