В настоящее время мы используем iBatis и nHibernate на одном веб-сайте. Выполнение сохранения на определенной странице приводит к появлению следующей ошибки:
System.Data.OracleClient.OracleException: ORA-01453: SET TRANSACTION должен быть первым оператором транзакции
Трассировка стека отображается в конце этого вопроса. Это происходит только на этой странице (по крайней мере, что мы видели.)
Код довольно простой, вызывая BeginTransaction после проверки того, что в данный момент нет активной транзакции. Я в тупике и ищу идеи
1. Что может быть причиной проблемы
2. Как отлаживать / устранять неполадки - (например: есть ли способ отследить команды, отправляемые в Oracle через System.Data.OracleClient?)
Спасибо за любую помощь.
System.Data.OracleClient.OracleConnection.CheckError (OciErrorHandle errorHandle, Int32 rc) +304553
System.Data.
System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal (логическое значение NeedRowid, OciRowidDescriptor & rowidDescriptor) +431
System.Data.OracleClient.OracleCommand.ExecuteNonQuery () +115
System.Data.OracleClient.OracleTransaction..ctor (соединение OracleConnection, изоляция уровня изоляции, уровень) +377
System.Data.OracleClient.OracleInternalConnection.BeginOracleTransaction (IsolationLevel il) +101
System.Data.OracleClient.OracleInternalConnection.BeginTransaction (IsolationLevel il) +4
System.Data.OracleClient.OracleConnection.BeginDbTransaction (IsolationLevel изоляционный уровень) +63
System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction (IsolationLevel изоляцияLevel) +10
NHibernate.Transaction.AdoTransaction.Begin (IsolationLevel изоляционный уровень) + 176