首页 新闻 赞助 找找看

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

0
悬赏园豆:20 [已关闭问题]

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

      最近维护一个新网站,但本人对的网站的管理很陌生。现在有这么个情况,请大家帮着分析一下原因。重启所有服务(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);
  }



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

多谢大家能出谋划策!

大智若愚的主页 大智若愚 | 初学一级 | 园豆:180
提问于:2009-09-07 10:59
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册