请告诉我在会话泄漏的情况下是否有监控hibernate会话的工具
谢谢。
答案 0 :(得分:5)
您可以启用Hibernate统计信息以查看打开和关闭会话的数量:hibernateConfiguration.setProperty(Environment.GENERATE_STATISTICS, "true")
然后使用SessionFactory.getStatistics()
查看打开和关闭的会话。那应该告诉你是否在泄漏会话。
找出泄漏的来源是另一个问题。我已经通过集中所有代码来获取会话然后在每个会话打开(通过线程)存储堆栈跟踪并在会话关闭时将其删除来完成。定期查看打开的会话列表,剩下的是泄露的会话。如果您可以在受控环境中重现泄漏,则分析工具可以使这更容易。