複数のデータベース (SQL Server 2008 および Oracle 11g) を更新するアプリケーションに取り組んでいます。TransactionScope は、更新が常に正しくコミットされるようにするための論理的な方法のように思えましたが、MSDTC をインストールするという選択肢はないようです。将来的には、このアプリケーションが分散トランザクションをサポートしないデータ ソースを使用する可能性もあります。
別の解決策を考え出すために何時間も費やしましたが、うまくいくようには思えません。すべての検索は、TransactionScope と分散トランザクションを指します。
アプリケーションは、Entity Framework を使用して C# で記述されています。分散トランザクションにエスカレートする必要のない提案はありますか? これは、どこにも行かなかった私が持っていたアイデアのリストです。
+TransactionScope: MSDTC を使用できません。将来のデータ ソースは、分散トランザクションをサポートしない可能性があります。
+トランザクションを手動で追跡してロールバックする: Entity Framework 内でこれを行う良い方法が見つかりませんでした。
+別のプロセスで再コミットできるようにキュー/ログの失敗: 失敗したコミットを一般的に保存する良い方法が思いつきません。また、再コミットによって新しいデータが上書きされないようにする必要があります。