【问题标题】:How to configure Hibernate statistics in Spring 3.0 application?如何在 Spring 3.0 应用程序中配置 Hibernate 统计信息?
【发布时间】:2011-07-15 14:30:12
【问题描述】:

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

【问题讨论】:

    标签: java performance hibernate spring jmx


    【解决方案1】:

    hibernate.generate_statistics 设置为true(在persistence.xmlhibernate.cfg.xml 或您的会话工厂bean 配置中)。然后注册这个bean:

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

    (如果您不使用 JPA,只需指定您的 sessionFactory bean,而不是通过 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>
    

    【讨论】:

    • 重定向到哪里。
    • 重定向是什么意思?你会在 JMX 中看到它,但是看到我的更新,我忘记了一个 bean
    • 谢谢博卓。我按照建议做了。看不到反映。我需要显式创建 JMX 代理还是编写 MBean 导出器?
    【解决方案2】:

    感谢 Bozho 的投入。我做了两个更改,如下所示。

     <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>  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      相关资源
      最近更新 更多