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

标签 java performance hibernate spring jmx

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

最佳答案

hibernate.generate_statistics 设置为 true(在 persistence.xmlhibernate.cfg.xml 中或者在你的 session 工厂 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>

关于java - 如何在 Spring 3.0 应用程序中配置 Hibernate 统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708602/

相关文章:

java - JAXB:具有文本内容和属性的元素,使用 XJC 生成类

javascript - 如何在 Pinterest、Twitter 和 Facebook Javascript 文件中启用 gzip 压缩并利用浏览器缓存。

java - 绑定(bind)到线程 [main] 的键 [org.hibernate.internal.SessionFactoryImpl] 没有值

java - 如何自定义验证失败返回的字段名称?

java - 我的 Java 程序正在测试整数是否能被 3 或 5 整除,但只是打印每个整数,我该如何修复它?

java - Hibernate 继承 - OneToMany 与 2 类扩展父不起作用

java - 使用 Spnego 解密 kerberos 票据

.net - AppDynamics 或 NewRelic 类型的系统 - 它是如何工作的?

php - rowCount() 作为变量或直接将其包含在 if 语句中哪个更好?

hibernate - 无法从 persistence.xml 创建连接