C# C-Oracle事务异常-同时有大量用户-“执行需要命令对象具有事务…”

C# C-Oracle事务异常-同时有大量用户-“执行需要命令对象具有事务…”,c#,oracle,transactions,C#,Oracle,Transactions,我开发了一个web应用程序。有些方法使用事务。一切正常, 多个用户同时开始使用webapplication时除外 时间我经常得到以下信息: 当分配给命令的连接对象处于挂起状态时,Execute要求命令对象具有事务对象 本地交易。命令的Transaction属性尚未设置 已初始化 目前的情况是这样的: 1有一个Web应用程序,它有许多不同的方法可以访问 甲骨文数据库。这些方法互不影响 方法执行自己的任务 2有些方法使用事务,有些方法只执行一个SQL 语句,因此不使用事务 当一个用户使用该应用程序时

我开发了一个web应用程序。有些方法使用事务。一切正常, 多个用户同时开始使用webapplication时除外 时间我经常得到以下信息:

当分配给命令的连接对象处于挂起状态时,Execute要求命令对象具有事务对象 本地交易。命令的Transaction属性尚未设置 已初始化

目前的情况是这样的:

1有一个Web应用程序,它有许多不同的方法可以访问 甲骨文数据库。这些方法互不影响 方法执行自己的任务

2有些方法使用事务,有些方法只执行一个SQL 语句,因此不使用事务

当一个用户使用该应用程序时,一切正常。没有 代码错误或无法工作的事务

当其他用户同时开始使用该应用程序时,有时 前面提到的错误发生了。此错误可能发生在以下方法中: 甚至与使用事务的方法没有任何关系

我们使用Oracle 10g作为数据库

代码示例:

公共字符串NS\u INFO\u ESTUDO\u technico\u MODStringDictionary strict {

}


此应用程序在没有关闭连接的情况下具有过多的数据库访问权限。使用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();
 }