C# プロジェクトでは、(揮発性の) トランザクション リソースがSystem.Transactions.Transaction
. トランザクション タイムアウトが発生すると、ワーカー スレッドでロールバックが実行されます。明らかに、トランザクションはタイマーを使用し、タイマーが経過するとタイマー コールバックを呼び出します (この問題に関するMicrosoft
の
ドキュメントはほとんどありません)。したがって、私のトランザクション リソースでの ) の実装は、非同期的に呼び出されます。 IEnlistmentNotification.Rollback(...
私の質問は次のとおりです。これをどのように処理しますか? もちろん、ロールバック コードは、変更を破棄するなどして、リソースの内部状態を変更します。このリソースへのすべてのアクセスを同期する必要があるようです。ただし、リソースはスレッド保存用に設計されていません。誰かがこの問題を経験したことがありますか、それとも何らかの「ベストプラクティス」がありますか?