Oracle连接会话数的问题

kosisiyo 2004-09-12 08:55:33
小弟正在做一个系统,通过.Net连接Oracle,系统采用三层结构,在数据层对数据库进行所有操作,方式为打开连接—使用—关闭连接,刚开始的时候没太注意,没有出现什么问题,近几天出现一个
Ora-00020的错误,“ORA-00020: maximum number of processes (149) exceeded”,进程数达到上限,Oracle达人一定都很清楚了,到数据库后台查看,发现会话数暴长,其中只有几个是活动连接,大部分状态都是INACTIVE,按道理说关闭连接后这个会话应该会关闭才是,现在茫茫不知所以,很困惑,也很急,望达人帮忙,先行多谢
...全文
430 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojianjun 2004-09-13
  • 打赏
  • 举报
回复
用戶打開的應用程序過多
kosisiyo 2004-09-13
  • 打赏
  • 举报
回复
这是一个方法,大家看看有什么问题吗
kosisiyo 2004-09-13
  • 打赏
  • 举报
回复
public static DataSet getDataSet(string strQ)
{
OracleConnection con=getConn( false );
OracleDataAdapter adapter=new OracleDataAdapter(strQ , con);
DataSet ds=new DataSet() ;
adapter.Fill(ds);
con.Close();
con.Dispose();
return ds;
}
xinkuangcao 2004-09-13
  • 打赏
  • 举报
回复
可能是在程序中许多地方忘了关闭连接了,
kosisiyo 2004-09-13
  • 打赏
  • 举报
回复
这个值可以设成0吗,我一分钟都不希望放在会话里,因为一分钟就有可能出现上百个会话的
jxc 2004-09-13
  • 打赏
  • 举报
回复
关注
yangqingdelphi 2004-09-13
  • 打赏
  • 举报
回复
process=100试试,加大.
或检查程序,是否会话连的太多.
weilypig 2004-09-13
  • 打赏
  • 举报
回复
连接池的办法已经试过了,没有任何改变,无奈
救命啊,真的很急
kosisiyo 2004-09-13
  • 打赏
  • 举报
回复
在web层试过了,打开一个连接,数据提取完后再进行关闭操作,仍然会留下该会话,现在的关键问题是要处理这个会话,以前使用SQLSERVER时不会出现这种问题,怀疑是不是Oracle什么设置的问题,
kosisiyo 2004-09-13
  • 打赏
  • 举报
回复
打开后马上又关闭了会有什么问题吗,为什么数据库中留下那么多死会话呢
shbjwq430105 2004-09-13
  • 打赏
  • 举报
回复
关闭暂时不用的应用程序
wuzd 2004-09-13
  • 打赏
  • 举报
回复

在module中执行一次:
OracleConnection con=getConn( false );

在程序推出是执行
con.Close();
con.Dispose();
还是修改程序把,否则客户不会满意的.
qfsb_p 2004-09-12
  • 打赏
  • 举报
回复
在oracle里面有dcd(dead connection detection),用来清除掉系统中的孤儿进程,这个时间间隔是sqlnet.ora文件中的SQLNET.EXPIRE_TIME提供的,你只需要设定一个值就ok了,默认单位是分钟,建议楼主试试。

希望有用!
kosisiyo 2004-09-12
  • 打赏
  • 举报
回复
设置大不是办法,已经试过了,会话会无限制的增长,设置再大可能服务器都会顶不住的;
如何强制关闭Session,我如何知道哪些是可以关闭的哪些是不能关闭的,再说我不能在程序中这样处理吧,这样性能会降低的呀
liuyi8903 2004-09-12
  • 打赏
  • 举报
回复
或者强制关闭session数目
liuyi8903 2004-09-12
  • 打赏
  • 举报
回复
把会话数设置大

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧