网站数据库连接增大后,网站服务会死掉....

fgh520 2009-09-07 09:47:26
( 对数据库连接或网站管理有经验的朋友,您更要耐心点看我的问题啊,谢谢您了! )

最近维护一个新网站,但本人对的网站的管理很陌生。现在有这么个情况,请大家帮着分析一下原因。重启所有服务(apache、weblogic,orcale),完成可以正常访问,可是几个小时后(大概六、七个小时),网站就不能再访问,就卡死了。我已经观察了几天,虽然网站运行中,可以看到weblogic服务那个dos窗口上看空指针异常(那人异常是用户会话超时引起的,所以可以忽略),但每次网站卡死的时候,weblogic日志没有任何异常。这时候,我用select count(*) from v$process查看时,都在110到135之间( 数据库允许的最大连接数设置的是500), 查看v$session用户连接也是一百多了。

急切想知道是什么原因引起的? 是程序中没有关闭连接连接? 还是其他?

另说明一下,目前网站用的weblogic10, orcale10g,都是破解版的(正版的还在购买商议),会是因为非正版中有什么机关限制? 呵,这是我猜想的。

网站是采用的ssh框架。 但个别模块中使用ajax时用到了jdbc,使用hibernate操作数据的关半连接几乎都使用了try....finally{
SessionFactoryUtils.releaseSession(session, sessionFactory); }(我都曾也if (session != null) session.close();这样半闭,全没什么效果 ,后来又改回来了), 这样,关闭问题上都交给hibernate,应该问题不大了吧。 至于jdbc方面的,我现在给修改成类似如下面的代码,应该也没问题(呵,我修改的嘛,自以为了),大家看看:

SessionFactory sessionFactory = null;
Connection conn = null;
Statement stmt = null;
Session session = null;
String sql ="sql....";
try {

sessionFactory = (SessionFactory) SysTool.getConext().getBean("sessionFactory");//SysTool.getConext()得到一个上下文
session = sessionFactory.openSession();
conn = session.connection();
stmt = conn.createStatement();
stmt.executeUpdate(sql);

} catch (Exception ex) {
System.out.println("修改信息出错:" + ex.toString());
} finally {
Toolkit.closeJdbcArgs(null, stmt, conn); //一个专用于关闭。所传参数不为空时,都会调用他们的close();
SessionFactoryUtils.releaseSession(session, sessionFactory);
}



真希望,能尽快搞定这个问题。

多谢大家能谋划策!(不知这儿能不能留Q Q,呵,我留了,我希望尽快能得帮助。我Q:649169417(中文的,防止自动过滤。嘿)

...全文
101 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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