首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理hibernate会话

管理hibernate会话
EN

Stack Overflow用户
提问于 2010-10-28 15:12:49
回答 2查看 2.9K关注 0票数 2

我正在尝试调试一个有一些性能问题的web应用程序。我打开了hibernate日志,我看到了很多这样的情况:

代码语言:javascript
复制
2010-10-28 10:58:00,423 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786198212608
2010-10-28 10:58:01,390 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786202173440
2010-10-28 10:58:01,418 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786202288128
2010-10-28 10:58:26,181 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786303717376

我担心没有关于“封闭会话”的日志()。

我现在正在看这个:http://static.springsource.org/spring/docs/2.5.x/reference/orm.html,但是它没有任何东西能让我对日志感到安心。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-28 19:53:25

你是如何访问会话的?您正在使用spring事务注释吗?

我们在当前的应用程序中使用hibernate模板。虽然这显然已经不需要了。虽然我确实看到了其他hibernate初始化调试语句,但我并不认为这是调试的结果。

无论如何,您可能会获得对会话工厂的引用并调用sessionFactory.getStatistics().getSessionOpenCount()。

您可能必须调用setStatisticsEnabled(真)

http://docs.jboss.org/hibernate/stable/core/api/org/hibernate/stat/Statistics.html

这至少可以让您了解开放会话的数量,看看它是否在持续上升。

根据binil的回答,还有一个关于在不同日志级别上打开/关闭日志条目的错误报告。http://opensource.atlassian.com/projects/hibernate/browse/HHH-2425

票数 1
EN

Stack Overflow用户

发布于 2010-10-28 19:52:47

查看来源,消息似乎是从SessionImpl.java的构造函数中记录下来的。会话关闭时有一个相应的日志语句(请参阅方法public Connection close() throws HibernateException),但这是在TRACE级别记录的。我对slf4j并不熟悉,但从这份文件的角度看,TRACE的水平似乎比DEBUG高。因此,尝试增加日志记录的数量(可能是ALL吗?)并验证会话是否已关闭。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4044249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档