這是我的理解,當使用NServiceBus時,我們基本上有2種異常。如何在NServiceBus中回滾NHibernate事務
環境:意味着任何必需的組件當前不可用。通常會導致事務的完整回滾。這是我在NServiceBus文檔回滾背後看到的描述(包括將消息放回到總線上 - 這聽起來很棒)。我該怎麼做呢?
驗證:由於業務邏輯,規則等原因,正在處理的消息無法成功。在我希望回滾所有數據庫交互的位置,但將命令保留在隊列中沒有任何價值。在這種情況下,我只想回滾事務的NHibernate部分 - 而不是MSMQ部分。我該怎麼做呢?通常,我會在處理任何單個消息之前執行驗證,但是如果您將多個消息綁定到一個事務中,並且想要將它們全部回滾,則無法通過預驗證。
我的假設是要麼是瘋狂明顯的答案,我已經忽略了它,或者我想要做的事情是不可能的(關於驗證例外)。