sql >> データベース >  >> RDS >> Oracle

Oracle11gでのNHibernateTransactionScopeの問題

    トランザクションスコープのみを使用する場合の問題の概要は次のとおりです。NHibernateFlushMode自動検索前にフラッシュしない

    nhibernate(v3.1withoracle方言および11gdbw / opd.net v2.112.1.2)は、フラッシュの問題を回避するために独自のトランザクションを必要としているようですが、トランザクションスコープをnhibernateで機能させることができませんでしたトランザクション。

    私はそれを機能させることができないようです:(これはnhibernateまたはodp.netの欠陥である可能性があります、確かではありません...

    ここで同じ問題が見つかりました: NHibernate 3.0:TransactionScopeとAuto -フラッシング

    修正済み:解決策が見つかりました! 「enlist=dynamic;」を入力します私のオラクル接続文字列に、問題は解決されました。 nhibernateトランザクション(フラッシュの問題を修正するため)とトランザクションスコープの両方を次のように使用することができました:

            ISessionFactory sessionFactory = CreateSessionFactory();
    
            using (TransactionScope ts = new TransactionScope())
            {
                using (ISession session = sessionFactory.OpenSession())
                using (ITransaction tx = session.BeginTransaction())
                {
                    //do stuff here
    
                    tx.Commit();
    
                }
                ts.Complete();
            }
    

    ログファイルを確認したところ、次のことがわかりました:2011-06-27 14:03:59,852 [10] DEBUG NHibernate.Impl.AbstractSessionImpl-DTCトランザクションに参加しています:Serializable

    接続でSQLが実行される前。ユニットテストを行って、適切に実行されていることを確認します。シリアライズ可能が何を教えてくれるのかよくわかりませんが



    1. Androidを搭載したドライバーJDBCPostgreSQL

    2. Postgresqlあるテーブルから別のテーブルでのみ使用可能な列の値を選択する方法は?

    3. エイリアスMySQLv8.0としてのユーザー定義変数が機能しない

    4. 単一のクエリでのRubymysql2の複数のステートメント