2009-12-23 54 views

回答

4

您可以启用Hibernate统计信息来查看打开和关闭会话的数量:hibernateConfiguration.setProperty(Environment.GENERATE_STATISTICS, "true")然后使用SessionFactory.getStatistics()查看打开和关闭的会话。这应该告诉你,如果你泄漏会议。

找出泄漏来自哪里是另一个问题。我已经通过集中所有代码来获得会话,然后在每个会话打开时(线程)存储堆栈跟踪并在会话关闭时将其删除。定期查看公开会话的列表,其中剩下的是泄露的会话。如果您可以在受控环境中重现泄漏情况,分析工具可以使这更容易。