Hareesh Ram
Hareesh Ram

Reputation: 335

How to configure Hibernate statistics in Spring 3.0 application?

How do we configure such that we obtain Hibernate statistics through JMX in Spring MVC based web applications. Is there any better way of tracking Hibernate performance.

Upvotes: 6

Views: 8277

Answers (2)

Hareesh Ram
Hareesh Ram

Reputation: 335

Thanks Bozho for your inputs. I made two changes as specified below.

 <bean id="jmxExporter"  class="org.springframework.jmx.export.MBeanExporter"         lazy-init="false">    
    <property name="server" ref="mbeanServer" /> 
     <property name="beans">    
    <map>  
          <entry key="Qvantel:name=hibernateStatistics" 
           value-ref="hibernateStatisticsMBean" />   
    </map>  
    </property>  
    <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" />  
    </bean>  

Upvotes: 0

Bozho
Bozho

Reputation: 597144

Set hibernate.generate_statistics to true (either in persistence.xml or in hibernate.cfg.xml or in your session factory bean configuration). Then register this bean:

<bean id="hibernateStatisticsMBean" class="org.hibernate.jmx.StatisticsService">
    <property name="statisticsEnabled" value="true" />
    <property name="sessionFactory" value="#{entityManagerFactory.sessionFactory}" />
</bean>

(If you are not using JPA, just specify your sessionFactory bean instead of getting it through the EMF)

And finally you need an mbean server and exporter:

<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
    <property name="locateExistingServerIfPossible" value="true" />
</bean>

<bean id="jmxExporter" class="org.springframework.jmx.export.MBeanExporter"
    lazy-init="false">
    <property name="server" ref="mbeanServer" />
    <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
    <property name="beans">
        <map>               
            <entry key="yourkey:name=hibernateStatistics" value-ref="hibernateStatisticsMBean" />
        </map>
    </property>
</bean>

Upvotes: 8

Related Questions