是否有任何工具可以监控Hibernate二级缓存的使用?我知道我可以使用Hibernate API来检索这些信息。但是当我的应用程序没有读取信息本身时,我该怎么办?我无法修改它?有没有办法从应用程序外部读取缓存统计信息?
答案 0 :(得分:7)
引用休眠documentation:
3.4.6。 Hibernate统计
如果启用
hibernate.generate_statistics
, Hibernate公开了许多指标 在调整运行时很有用 系统通过SessionFactory.getStatistics()
。 Hibernate甚至可以配置为 通过JMX公开这些统计信息。读 接口的Javadocorg.hibernate.stats
了解更多信息 信息。
您会找到org.hibernate.stats
package-summary here。
对于JMX部分,请查看Publishing statistics through JMX。
对于更高级的内容,您必须依赖缓存提供程序的特定功能。
答案 1 :(得分:3)
如果您的二级缓存是EhCache,那么您可以从其MBean读取缓存状态。
请参阅ehcache文档中的“JMX管理和监控”:http://ehcache.org/documentation/jmx.html
答案 2 :(得分:3)
有一个用于监视已通过JMX公开的hibernate缓存的工具。它叫做hibernate-jconsole,可以在这里下载 - http://hibernate-jcons.sourceforge.net/
答案 3 :(得分:1)