次の問題に直面しています。次のようなコードがあります。
DoSomething(){
using (TransactionScope scope = new TransactionScope())
{
InsertSomething();
InsertSomethingElse();
InsertYetAnotherThing();
ProcessDataRelatedWithThePreviousInserts();
scope.Complete()
}
}
ProcessDataRelatedWithThePreviousInserts で条件をチェックし、必要に応じて残りのワークフローを他のサーバーのメッセージ キューにリダイレクトします。もう一方のサーバーで、メッセージを回復し、ワークフローを続行します (基本的に、DoSomething メソッドの挿入に関連する挿入をいくつか行います)。
DoSomething メソッドで TransactionScope を削除した場合にのみ、これを行うことができるため、これは理論上です。やりたいことを達成する方法はありますか、それともトランザクションの処理方法を変更する必要がありますか?