NHibernate TransactionScope-Problem mit Oracle 11g

Der folgende Codeausschnitt funktioniert gut mit SQL Server 2008 (SP1), aber mit Oracle 11g löst der Aufruf von session.BeginTransaction () eine Ausnahme mit der Meldung "Die Verbindung ist bereits Teil einer lokalen oder verteilten Transaktion" aus (Stapelablaufverfolgung siehe unten) ). "NHibernate.Driver.OracleDataClientDriver" verwenden.

Hat jemand anderes in diese laufen?

using (var scope = new TransactionScope())
{
   using (var session = sessionFactory.OpenSession())
   using (var transaction = session.BeginTransaction())
   {
      // do what you need to do with the session
      transaction.Commit();
    }
    scope.Complete();
}
     Exception at:    at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)
           at NHibernate.Transaction.AdoTransaction.Begin()
           at NHibernate.AdoNet.ConnectionManager.BeginTransaction()
           at NHibernate.Impl.SessionImpl.BeginTransaction()
           at MetraTech.BusinessEntity.DataAccess.Persistence.StandardRepository.SaveInstances(List`1& dataObjects) in S:\MetraTech\BusinessEntity\DataAccess\Persistence\StandardRepository.cs:line 3103

        Inner error message was: Connection is already part of a local or a distributed transaction
        Inner exception at:    at Oracle.DataAccess.Client.OracleConnection.BeginTransaction(IsolationLevel isolationLevel)
           at Oracle.DataAccess.Client.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel)
           at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction()
           at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)

Antworten auf die Frage(8)

Ihre Antwort auf die Frage