Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-641

JMX registration error

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 2.9.2, 2.11.0
    • Affects Version/s: 2.9.0
    • Component/s: Monitoring
    • Labels:
    • Environment:
      linux 64 bit

      We are seeing the following error message in our Webserver (resin) log since we are using java driver 2.9.0:

      [12-09-11 11:40:21.358] {main} jmx registration error: com.mongodb.util.management.JMException: javax.management.NotCompliantMBeanException: com.mongodb:type=ConnectionPool,host=sx177.ipx/172.x.x.x,port=27018,instance=1 mbean has no MBean interface for class com.mongodb.DBPortPool continuing... 

      This error does not occur using java driver v2.7.3.

      I found out that v2.7.3 uses SimplePool implementing DynamicMBean which v2.9.0 does not.
      The problem is that resin (v4.0.30) checks wether the MBean is an instance of DynamicBean OR implements a MBeanInterface. The class name of the latter must end with the name of the implemented interface or superclass appended with MBean or MXBean.
      The first is the case for v2.7.3 since SimplePool implements DynamicMBean. For v2.9.0 however, neither the first nor the latter is the case because it does not implement DynamicMBean anymore and the implemented interface com.mongodb.MongoConnectionPoolMXBean does not follow the naming convention. The interface name should end with DBPortPoolMBean or DBPortPoolMXBean or SimplePoolMBean or SimplePoolMXBean.

            jeff.yemin@mongodb.com Jeffrey Yemin
            kay.agahd@idealo.de Kay Agahd
            0 Vote for this issue
            5 Start watching this issue