0

3日間振り向く問題があります。このトランザクション スコープでトランザクション スコープを使用しています。5 つのテーブルに 5 つの値を挿入します。最初の 3 つのテーブルの挿入は正しく行われ、4 番目の挿入は完全に無視され、5 番目の値は問題なく正しく挿入されます。例外は発生せず、ロールバックも発生しません。

編集: この問題は運用サーバーでのみ発生し、定期的に発生するわけではありません。まれに発生し、ほとんどの場合、問題なく正しく動作します。

注:この問題は、同じサーバーで別のアプリケーションをホストした後に発生し始めました。

public void InsertStuff()
{
    try
    {
        using(TransactionScope ts = new TransactionScope())
        {
            //perform insert 1
            Tablel1.Insert();

            //perform insert 2
            Tablel2.Insert();

            //perform insert 3 - 
            Tablel3.Insert();

            //perform insert 4 - No insertion occur !!!!!
            Tablel4.Insert();

            //perform insert 5 - insertion works fine!!!!!
            Tablel5.Insert();


            ts.Complete();            
        }
    }
    catch(Exception ex)
    {
        throw ex;
    }
}
4

2 に答える 2

0

トランザクションまたはプログラム フローに問題はないようです。プログラムされているものをチェックする

Tablel4.Insert();

プログラム/コンピューターが自分で行う魔法のようなものがあります。私たちはしばしば間違いを犯しますが、それに気づきません。可能性を提案することはできますが、他の人に見てもらいたい場合は、ロジックを再確認したり、そのコード セグメントを投稿したりできるのはあなたです。

一部のコンパイルまたは構文ではなく、論理的な誤りがある可能性があるため、例外は発生しません

于 2012-12-17T09:06:10.783 に答える
0

例外が発生した場合、トランザクション スコープはロールバックする必要があります。

自分で例外をスローするか、catch で ts.Rollback() を明示的に呼び出して、理論をテストしてみませんか。

于 2012-12-17T07:20:29.660 に答える