问题
Is there any tool which would allow for monitoring Hibernate 2nd level cache usage? I know that I could use Hibernate API for retrieving such information. But what should I do when I have application which doesn't read the information itself, and I can't modify it? Is there any way to read cache statistics from the outside of the application?
回答1:
Quoting Hibernate documentation:
3.4.6. Hibernate statistics
If you enable
hibernate.generate_statistics
, Hibernate exposes a number of metrics that are useful when tuning a running system viaSessionFactory.getStatistics()
. Hibernate can even be configured to expose these statistics via JMX. Read the Javadoc of the interfaces inorg.hibernate.stats
for more information.
You'll find the org.hibernate.stats
package-summary here.
For the JMX part, have a look at Publishing statistics through JMX.
For more advanced stuff, you'll have to rely on specific features from your cache provider.
回答2:
If your 2nd level cache is an EhCache, then you can read cache status from its MBean.
See 'JMX Management and Monitoring' in the ehcache documentation: http://ehcache.org/documentation/jmx.html
回答3:
There is a tool for monitoring hibernate's cache that has been exposed through JMX. Its called hibernate-jconsole and can be downloaded here - http://hibernate-jcons.sourceforge.net/
回答4:
Implement
http://narcanti.keyboardsamurais.de/hibernate-statistics-jsp-reloaded.html
for "human" use
来源:https://stackoverflow.com/questions/1839299/tool-for-monitoring-hibernate-cache-usage