问题描述
|
该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);