用JConsole监视c3p0带有休眠和Tomcat

问题描述

| 该Web应用程序是一个Struts应用程序(没有Spring),它在Hibernate中使用c3p0,并且在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应用程序中进行任何配置吗? 谢谢!     

解决方法

        当您不使用Spring或JBoss时,涉及到Hibernate的JMX监视则需要多做一些事情。 您需要执行以下操作: 在您的Hibernate Configuration中添加:
<property name=\"hibernate.generate_statistics\">true</property>
然后,在应用程序的启动段中,您需要向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);
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...