C# C-Oracle事务异常-同时有大量用户-“执行需要命令对象具有事务…”
我开发了一个web应用程序。有些方法使用事务。一切正常, 多个用户同时开始使用webapplication时除外 时间我经常得到以下信息: 当分配给命令的连接对象处于挂起状态时,Execute要求命令对象具有事务对象 本地交易。命令的Transaction属性尚未设置 已初始化 目前的情况是这样的: 1有一个Web应用程序,它有许多不同的方法可以访问 甲骨文数据库。这些方法互不影响 方法执行自己的任务 2有些方法使用事务,有些方法只执行一个SQL 语句,因此不使用事务 当一个用户使用该应用程序时,一切正常。没有 代码错误或无法工作的事务 当其他用户同时开始使用该应用程序时,有时 前面提到的错误发生了。此错误可能发生在以下方法中: 甚至与使用事务的方法没有任何关系 我们使用Oracle 10g作为数据库 代码示例: 公共字符串NS\u INFO\u ESTUDO\u technico\u MODStringDictionary strict { }C# C-Oracle事务异常-同时有大量用户-“执行需要命令对象具有事务…”,c#,oracle,transactions,C#,Oracle,Transactions,我开发了一个web应用程序。有些方法使用事务。一切正常, 多个用户同时开始使用webapplication时除外 时间我经常得到以下信息: 当分配给命令的连接对象处于挂起状态时,Execute要求命令对象具有事务对象 本地交易。命令的Transaction属性尚未设置 已初始化 目前的情况是这样的: 1有一个Web应用程序,它有许多不同的方法可以访问 甲骨文数据库。这些方法互不影响 方法执行自己的任务 2有些方法使用事务,有些方法只执行一个SQL 语句,因此不使用事务 当一个用户使用该应用程序时
此应用程序在没有关闭连接的情况下具有过多的数据库访问权限。使用command.Dispose有很多方法。为什么要从静态连接对象开始?对不起,我需要更新我的ask。我的应用程序不再具有静态连接。但是问题仍然存在于同时有很多用户。你能发布一些代码吗?将有帮助…您是否尝试在每次交易后关闭连接?在Finally Block add connection.Close中。如果要重用连接,我建议使用连接池。是否还有与错误消息相关联的oracle错误号?
OpenConn();
OracleTransaction oTrans = connection.BeginTransaction(IsolationLevel.ReadCommitted);
OracleCommand command = connection.CreateCommand();
command.Transaction = oTrans;
command.CommandText = "GOMNET_PROJETOS.NS_INFO_ESTUDO_TECNICO_MOD";
command.CommandType = CommandType.StoredProcedure;
try
{
OracleParameter param30 = new OracleParameter("nCodigoError",OracleType.Number);
param30.Size = 1000;
param30.Direction = ParameterDirection.Output;
command.Parameters.Add(param30);
command.ExecuteNonQuery();
if (param30.Value.ToString() != "0")
{
oTrans.Rollback();
return ObtemMensagem(param30.Value.ToString());
}
else
{
oTrans.Commit();
}
return "0";
}
catch (Exception e)
{
throw e;
}
finally
{
command.Dispose();
}