使用JConsole监视c3p0(带有hibernate和Tomcat)

Hel*_* S. 5 tomcat hibernate jmx jconsole c3p0

Web App是一个使用c3p0和Hibernate的Struts应用程序(没有弹簧),它位于Tomcat 6中.Hibernate和c3p0 jar都在{WEB_APP}/WEB-INF/lib文件夹中.

在Tomcat中,启用了jmx远程:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8888 -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = FALSE

当我使用连接到它的jconsole时,我在选项卡中看不到c3p0 MBean.

我需要在Tomcat或Web应用程序中进行任何配置吗?

谢谢!

Mat*_*dge 2

当您不使用 Spring 或 JBoss 时,在 Hibernate 的 JMX 监控方面需要更多的实际操作。

您需要执行以下操作:

  • 在您的 Hibernate 配置中添加:

    <property name="hibernate.generate_statistics">true</property>
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后,在应用程序的启动部分,您需要向 MBean 服务器注册 MBean:

    MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); ObjectName objectName = new ObjectName("org.hibernate:type=statistics"); StatisticsService mBean = new StatisticsService(); mBean.setStatisticsEnabled(true); mBean.setSessionFactory(sessionFactory); mbeanServer.registerMBean(mBean, objectName);