Summary: | MBeanDumper dumpBeans SEVERE: Error getting attribute while using JMXProxy servlet | ||
---|---|---|---|
Product: | Tomcat 7 | Reporter: | Jonathan Hodges <hodgesz> |
Component: | Manager | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | minor | ||
Priority: | P2 | ||
Version: | 7.0.26 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows Vista |
Description
Jonathan Hodges
2012-03-06 23:33:46 UTC
This also appears on HP hardware with RHEL on both 32-bit and 64-bit Sun JVMs. We are using the APR Native Tomcat library with a Executor thread pool. As I mentioned before JMXProxy still returns the data correctly and the server appears to be unimpacted by the exceptions. They are really just a nuisance and red herrings for the server guys. For most MBeans there's a descriptor defining how the MBean attributes relate to the members of the base objects. For the StandardThreadExecutor there was a bug in this descriptor, so that the MBean dumper tried to retrieve the boolean prestartminSpareThreads using a "get" getter instead of an "is" getter. The attribute didn't exist in 6.0 so that's why there's no exception for 6.0. Fixed now in trunk by r1297818 and 7.0 by r1297820. Will be part of TC 7.0.27. Thanks for the detailed report. Regards, Rainer Will this fix the other following exception concerning objects exposed with the org.springframework.jmx.export.MBeanExporter? Mar 6, 2012 9:18:20 AM org.apache.catalina.mbeans.MBeanDumper dumpBeans SEVERE: Error getting attribute bean:name=eventingDataSource PooledConnection javax.management.MBeanException: RuntimeException thrown in RequiredModelMBean while trying to invoke operation getPooledConnection at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1091) at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955) at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90) at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1358) at org.springframework.jmx.export.SpringModelMBean.getAttribute(SpringModelMBean.java:109) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:666) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638) at org.apache.catalina.mbeans.MBeanDumper.dumpBeans(MBeanDumper.java:82) at org.apache.catalina.manager.JMXProxyServlet.listBeans(JMXProxyServlet.java:172) at org.apache.catalina.manager.JMXProxyServlet.doGet(JMXProxyServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) Since the Tomcat JDBC pool is part of Tomcat 7 is there a better way to view the pool properties through JMX than exposing through the Spring MBeanExporter? (In reply to comment #4) > Since the Tomcat JDBC pool is part of Tomcat 7 is there a better way to view > the pool properties through JMX than exposing through the Spring MBeanExporter? While the pool is properly part of Tomcat 7, I believe there's no reason it wasn't be used with Tomcat 6 (but I haven't tried it). I think you've mentioned using the JMXProxyServlet... is that an acceptable alternative? If you have further questions, please use the users' list instead of BZ. |