z82055116 2009-10-20 12:50
浏览 222
已采纳

OpenSessionInView里的Session不能自动关闭?

在Struts2+spring+hibernate集成的项目里,用到了spring的OpenSessionInViewFilter过滤器,来延长Session的生命周期,但在使用过程中,lasy加载正常是可以用的,就是session不会自动关闭。我查看源码里有下面一段
[code="java"]
public static void closeSession(Session session) {
if (session != null) {
logger.debug("Closing Hibernate Session");
try {
session.close();
}
catch (HibernateException ex) {
logger.debug("Could not close Hibernate Session", ex);
}
catch (Throwable ex) {
logger.debug("Unexpected exception on closing Hibernate Session", ex);
}
}
}
[/code]
上面的logger根本就没有输入,也就是说没有进入这个地方
[code="java"]
logger.debug("Closing single Hibernate Session in OpenSessionInViewFilter");
closeSession(sessionHolder.getSession(), sessionFactory);
[/code]
只运行了上面那个logger
不清楚是为什么,向高手请教~~~
[b]问题补充:[/b]
他是在完成response后,在过滤器最后关闭的,如果不关闭的话,他占用的数据库连接就没有关闭,一会连接就不够了。。

  • 写回答

3条回答

  • CaiHuajiang 2009-10-20 14:21
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器