我用c#写的程序,所有操作的语句都是先开始链接数据库后结束链接数据库。但是数据库关闭连接后,数据库中依然有很多session ,这是怎么回事啊,怎么才能解决这个问题呢,我的程序已经正式运行了。
代码如下
  try
        {
            string sql = this.getSql("获取是否是补录数据");
            sql = sql.Replace("strlcslh", lcslh);
            conn = new OracleConnection();
            conn.ConnectionString = this.strconn;
            conn.Open();
            OracleCommand myComd = new OracleCommand();
            myComd.Connection = conn;
            myComd.CommandText = sql;
            OracleDataReader myReader = myComd.ExecuteReader();
            while (myReader.Read())
            {
                if (!myReader.IsDBNull(1))
                {
                    if (myReader.GetDateTime(0) > myReader.GetDateTime(1))
                    {
                        ViewState["sjdsqsj"] = myReader.GetDateTime(1).ToShortDateString();
                        result = true;
                    }
                }
                else
                {
                    result = true;
                }
            }
        }
        catch (Exception ex)
        {
            this.Response.Write("in IfBl()+" + ex.Message.ToString());
        }
        finally
        {
            conn.Close();
        }
请问问题出在哪啊

解决方案 »

  1.   

    1:你的手CS结构的?还是BS的,就是说你的程序C/S是直接连接ORACLE的么,B/S的话通过服务器连接的,从V$SESSION 看是什么程序进行SESSION连接的
    2:oracle是可以进行自动释放,可能你设置的超时比较长,查看一下profile的connect_time和idle_time
      

  2.   

    我用的是b/s方式连接,从V$SESSION看到的是w3wp.exe,我对oracle没有进行设置。
      

  3.   

    你用了iis吧?
    那是应用程序池,相当于连接池的功能。没问题。