NServiceBusを使用する場合、基本的に2種類の例外があります。NServiceBus内のNHibernateトランザクションをロールバックする方法
環境:必要なコンポーネントは現在利用できません。通常、トランザクションの完全なロールバックが発生します。これは、NServiceBusドキュメンテーション内のロールバックの背後にある説明です(メッセージをバスに戻すことを含みます - これは素晴らしいと思います)。これはどうすればいいですか?
妥当性検査:ビジネスロジック、ルールなどの理由で正常に処理できないメッセージが処理されています。すべてのデータベースのやりとりをロールバックしたいが、キューにコマンドを保存する価値はありません。その場合、MSMQ部分ではなく、トランザクションのNHibernateセクションをロールバックしたいだけです。これはどうすればいいですか?通常は、単一のメッセージが処理される前に検証を実行しますが、複数のメッセージを1つのトランザクションにまとめてロールバックしたい場合は、事前検証では不可能です。
私の前提は、答えが非常に明白であり、私はそれを見落としているか、私がしようとしていることは(検証例外に関して)不可能です。