+ -
当前位置:首页 → 问答吧 → Hibernate 中getcurrentsession()问题

Hibernate 中getcurrentsession()问题

时间:2011-11-30

来源:互联网

使用这个函数是不是有时间限制?
具体问题是我服务器一直开着 然后过上一天再去访问就抱错 说是session过期
然后再连就好了

使用getcurrentsession就是看中自动分配session这个优势 你们碰到过这个问题吗?

作者: rockay2006   发布时间: 2011-11-30

记得Weblogic对连接池有自动尝试重连的机制,不知道有没有类似的配置,数据库连接不活动一段时间是会被断开的~

作者: mscf   发布时间: 2011-11-30

引用 1 楼 mscf 的回复:

记得Weblogic对连接池有自动尝试重连的机制,不知道有没有类似的配置,数据库连接不活动一段时间是会被断开的~


那这个不是一个明显的bug?那你们都怎么写 都是清一色opensession

作者: rockay2006   发布时间: 2011-11-30

问题解决,
是没有配置c3p0的原因
默认db的链接是8小时过期
但hibernate保持了那个getcurrentsession
所以下一次就会报错

配置了c3p0之后就好了

作者: rockay2006   发布时间: 2011-11-30

该回复于2011-11-30 17:44:58被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#5楼 得分:0回复于:2011-11-30 17:41:52

作者: mengzai2   发布时间: 2011-11-30

引用 3 楼 rockay2006 的回复:

问题解决,
是没有配置c3p0的原因
默认db的链接是8小时过期
但hibernate保持了那个getcurrentsession
所以下一次就会报错

配置了c3p0之后就好了



http://hi.baidu.com/zijie410/blog/item/4add141f37615e0340341743.html
你那是什么数据库?
我就拿MySQL 数据库来说吧! 我空间有文章

其实3楼说的 意思是对的
MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常。

作者: mengzai2   发布时间: 2011-11-30