如何在Spring 3.0应用程序中配置Hibernate统计信息?

Har*_*Ram 6 java performance spring hibernate jmx

我们如何配置以便在基于Spring MVC的Web应用程序中通过JMX获取Hibernate统计信息.有没有更好的方法来跟踪Hibernate性能.

Boz*_*zho 8

设置hibernate.generate_statisticstrue(在会话工厂bean配置中persistence.xml或中hibernate.cfg.xml或中).然后注册这个bean:

<bean id="hibernateStatisticsMBean" class="org.hibernate.jmx.StatisticsService">
    <property name="statisticsEnabled" value="true" />
    <property name="sessionFactory" value="#{entityManagerFactory.sessionFactory}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

(如果您没有使用JPA,只需指定您的sessionFactorybean而不是通过EMF获取它)

最后你需要一个mbean服务器和导出器:

<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>
Run Code Online (Sandbox Code Playgroud)