网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  hibernate 使用外部 connection 的问题     
  文章作者:未知  文章来源:水木森林  
  查看:149次  录入:管理员--2007-11-17  
 
  最近在一个项目中试用了 hibernate . 因为项目分两部分来做,在另一个部分中,已经使用了一个连接池(自行开发的).现在两部分要合在一起,于是便出现了如下问题.
  开始,我们决定使用hibernate的外部连接方法进行数据访问:
  
  java代码:
  1
  2 public static dbsession opensession() {...}
  3   dbsession dbsession = null;
  4   try {...}
  5    //system.out.println("session is start");
  6    connectionpool connectionpool = pooledconnectionfactory.getconnectionpool();
  7    connection con = connectionpool.getconnection();
  8
  9    session s = (session) session.get();
  10    if (s == null) {...}
  11     s = fact.opensession(con);//在此,使用外部连接池所给的连接
  12     session.set(s);
  13    }
  14
  15    dbsession = new dbsession(s);
  16   } catch (throwable t) {
  17    string msg = "couldn't open a hibernate session for sessionfactory '" + "'";
  18    log.error( msg, t );
  19    throw new dbexception( msg + " : " + t.getmessage() );
  20   }
  21   return dbsession;
  22  }
  23
  
  关闭session方法如下:
  java代码:
  
  1
  2 public static void closesession() throws hibernateexception,exception{...}
  3     session s = (session) session.get();
  4     session.set(null);
  5     if (s != null){...}
  6       s.connection().close();
  7       s.close();
  8       system.out.println("session closing");
  9       //s = null;
  10
  11     }
  12   }
  13
  
  问题出现了.在我们很慢点击的访问下还好.只要稍刷的快些,便会出现 can't excute query 的错误.大概时在执行某一查询时, session中的connection为close.或 session 为空.很奇怪,也许是这种方法在快速并发访问时,会出现这个问题.其实在session.close()的时候,session是不会为空的..所以在此有些不理解.怎么会取到已经关闭的连接呢.不知道大家有没有遇到过.
  
  现在,我们有两种解决办法.
  一是,将前一部分的连接池注册为datasource,这样由hibernate调用.
  二是,将前一部分的连接池改为hibernate所带的dbcp等.
  这两种方法都不难更改.
  不过,只是不理解上述的bug.所以和大家讨论一下.也希望 robbin 能看到.解释一下.
 
 
上一篇: 如何用 hibernate 实现分页查询    下一篇: hibernate 的简单 read 性能测试
  相关文档
weblogic6.0的一些使用经验 11-17
java - io包的学习引导文章 11-17
一个奇怪的问题 11-17
使用技巧:applet中应用jdbc访问数据库 11-16
junit实战 11-17
不使用function计算给定两个日期之间的工作日个数 11-17
解析j2ee应用体系 11-17
如何在spring中实现事务暂停 11-17
如何设计用jsf和myfaces上传文件(图) 11-17
sprite类中的definereferencepixel(x,y) 11-17
groovy在webwork2中的应用 11-17
高手是如何轻松玩转java web start的 11-17
用spring更好地处理struts动作三种整合 11-17
jdk6.0新特性:用console开发控制台程序 11-16
讲述在java中decorate的三种实现方法 11-17
告诉你j2me是什么 11-17
从java编码中截取给定宽度中英文字符串 11-16
j2ee应用程序中sql语句自动构造方法 11-16
dudoj框架——最初的设想 11-17
java开发者xml基础(一) 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息