sql >> Databáze >  >> RDS >> Oracle

Problém NHibernate TransactionScope s Oracle 11g

Problém s použitím pouze rozsahu transakce je nastíněn zde:NHibernate FlushMode Auto se nesplachuje před nalezením

Zdá se, že nhibernate (v3.1 s věšteckým dialektem a 11g db w/opd.net v2.112.1.2) vyžaduje vlastní transakce, aby se předešlo problému s vyplachováním, ale nepodařilo se mi získat rozsah transakce, aby fungoval s nhibernate transakce.

Nedaří se mi to zprovoznit :( to může být závada v nhibernate nebo odp.net, nejsem si jistý...

našel stejný problém zde:NHibernate 3.0:TransactionScope and Auto -Splachování

OPRAVENO:nalezeno řešení! zadáním "enlist=dynamic;" do mého připojovacího řetězce Oracle, problém byl vyřešen. Byl jsem schopen použít jak transakci nhibernate (k vyřešení problému s vyplachováním), tak rozsah transakce takto:

        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();
        }

Zkontroloval jsem své protokolové soubory a našel toto:2011-06-27 14:03:59,852 [10] DEBUG NHibernate.Impl.AbstractSessionImpl – zařazen do transakce DTC:Serializovatelné

před provedením jakéhokoli SQL na připojení. Budu testovat jednotku, abych potvrdil správné provedení. Nejsem si však příliš jistý, co mi serializovatelný říká



  1. SQL:Jaké je výchozí pořadí dotazů?

  2. UNION 2 Select-query s počítanými sloupci

  3. Optimalizujte PostgreSQL pro rychlé testování

  4. Jak přidat fotografii do databáze mysql pomocí php?