2009-12-23 67 views

回答

4

您可以啓用Hibernate統計信息來查看打開和關閉會話的數量:hibernateConfiguration.setProperty(Environment.GENERATE_STATISTICS, "true")然後使用SessionFactory.getStatistics()查看打開和關閉的會話。這應該告訴你,如果你泄漏會議。

找出泄漏來自哪裏是另一個問題。我已經通過集中所有代碼來獲得會話,然後在每個會話打開時(線程)存儲堆棧跟蹤並在會話關閉時將其刪除。定期查看公開會話的列表,其中剩下的是泄露的會話。如果您可以在受控環境中重現泄漏情況,分析工具可以使這更容易。