This question is locked. New answers and comments are not allowed.
I'm getting the following exception when calling OpenAccess.FlushChanges() inside a TransactionScope using an Oracle backend:
It seems that this check is hardcoded in OracleFactory.Enlist just before delegating the enlistment to OracleConnection.EnlistTransaction. I've been using ODP.NET without TNS and with System.Transactions for ages and it doesn't require TNS names in the connection string. Why is this limitation in place?
You must use TNS names for participating in System.Transactions. Unable to
enlist a database connection in a System.Transactions.Transaction
at Telerik.OpenAccess.SPI.Backends.ThrowException(Exception e)
at OpenAccessRuntime.ExceptionWrapper.Throw()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.handleException(Exception x, Boolean needsRollback)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flushRetainState()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flush(Boolean retainValuesParam)
at OpenAccessRuntime.DataObjects.UnsynchronizedPMProxy.flush(Boolean retainState)
at OpenAccessRuntime.EnlistableObjectScope.FlushChanges(Boolean releaseMemory)
at Telerik.OpenAccess.OpenAccessContextBase.FlushChanges(Boolean releaseMemory)
at Telerik.OpenAccess.OpenAccessContextBase.FlushChanges()
It seems that this check is hardcoded in OracleFactory.Enlist just before delegating the enlistment to OracleConnection.EnlistTransaction. I've been using ODP.NET without TNS and with System.Transactions for ages and it doesn't require TNS names in the connection string. Why is this limitation in place?