次のようなCOM+で実行されているメソッドがあります。
[AutoComplete(true)]
public bool DoSomething(string args)
{
    DoSomeDBWork(args);
    try {
        DBAccess.RunQuery("INSERT fail");
        return 0;
    }
    catch (Exception ex)
    {
        //Hide the error because it doesnt matter - log it out though for completeness
        DBAccess.RunQuery("INSERT INTO Log VALUES ('{0}')", ex.ToString());
        return -1
    }
}
OKしたがって、メソッドが実行され、DoSomeDBWork()メソッドが実行され、DBに対していくつかの更新が行われます。
'insert fail'が実行され、失敗します。無視したいのですが、失敗したのでログアウトしてください。
しかし、エラーが生成されます:System.Transactions.TransactionException:操作はトランザクションの状態に対して無効です。
例外をキャッチしても、DBエラーであるため、トランザクションが自動的にロールバックされていると思います。
エラーは「ログに挿入...」の行から発生し
、DoSomeDBWork()で更新されたすべてのものもロールバックされます。
失敗した行を無視するにはどうすればよいですか?