I recently added support to Jopr, The JBoss management platform project ( http://www.jboss.org/jopr ) to be able to monitor Hibernate via the Hibernate Statistics MBean.

For background, see my blog entry: http://management-platform.blogspot.com/2008/11/monitoring-hibernate.html

and more specifically, see the demo flash: https://docs.jbosson.redhat.com/confluence/display/JON2/Demo-MonitoringHibernate

If you watch that demo, you can see how useful the Hibernate Statistics data can be (e.g. when used by external management tools like Jopr you can track the performance of Hibernate over time, send alerts based on that performance data, etc. etc.).

But for users to be able to monitor their Hibernate applications from an external management tool, it isn't enough for them to specify the "hibernate.generate_statistics" configuration setting. They must expose those statistics via JMX; however, that puts a burden on the Hibernate developer to write special code to do this (as the example code in the blog illustrates - see Max's comments on my blog and my responses also).

Out of that, I submitted this JIRA:

http://opensource.atlassian.com/projects/hibernate/browse/HHH-3593

Last night I wrote the code that implements this enhancement request and attached the patch to that JIRA. The short of it is, the Hibernate developer no longer has to write any Java code to expose the statistics via JMX, all you have to do is set these configuration settings:

hibernate.generate_statistics.jmx=true
hibernate.generate_statistics.jmx.object_name=hibernate:type=statistics,application=foo
hibernate.generate_statistics.jmx.mbeanserver=*platform*

If you set those, statistics generation will be turned on, the Hibernate Statistics MBean will be exposed via JMX and if you enabled the VM for remote JMX, you can immediately begin to monitor Hibernate (you'll even see the Hibernate MBean via jconsole, though things like Jopr will provide better functionality like viewing historical stat data, alerting and the like).

As the JIRA mentions, this patch does NOT introduce any JMX compile-time dependencies (due to the requirement that Hibernate be able to support JDK 1.4). Therefore, you will not see any "javax.management.*" imports or classes being used directly (they are used via reflection). However, if you enable this JMX statistics feature, obviously, you must run in JRE 5+ or JRE 1.4 + JMX libraries - if you do not, this code will log error messages saying what the problem is and simply disable the JMX stats capability (but otherwise, hibernate works normally).

Any suggestions how I might further this along to get it merged? Or is this patch good enough for some Hibernate developer to merge it in and take it over?

John Mazz
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to