最初にいくつかの CRUD 操作 (DataBase でいくつかの行を挿入および更新するトランザクション) を実行し、トランザクション全体 (XML )。
XML を取得したら、その XML を Web サービスに送信します。この Web サービスは、私のシステムを統合するために顧客が公開するものです。
重要なのは、ある日、私の顧客が公開している WS が、その IT エリアが実行する週次または月次のサポート タスクのために機能しなくなったと想像してみましょう。 WS を呼び出そうとした瞬間に例外が発生しました。
インターネットで検索した後、Transaction Scope について考え始めました。データ アクセス レイヤーにあるデータ アクセス メソッドには、挿入、更新、削除などを実行する TransactionScope が既にあります。
次のコードは、私が試してみたいものです:
public void ProcessSomething()
{
using (TransactionScope mainScope = new TransactionScope())
{
FooDAL dl = new FooDAL();
string message = dl.ProcessTransaction();
WSClientFoo client = new WSClientFoo();
client.SendTransactionMessage(message);
mainScope.Complete();
}
}
public class FooDAL
{
public string ProcessTransaction()
{
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions(){ IsolationLevel = IsolationLevel.ReadCommitted}))
{
///Do Insert, Update, Delete and According to the Operation Generates a message
scope.Complete();
}
return transactionMessage;
}
}
問題は、私がやりたいことを処理するために TransactionScope を使用するのは正しいですか?
お時間をありがとうございました:)