Unable to Start Confluence Due to JMX
Symptoms
Confluence is unable to start. A message in the logs appears like:
2009-03-23 15:12:25,990 ERROR [http-8080-Processor22] [ContainerBase.[Catalina].[localhost].[/confluence]] filterStart Exception starting filter jmx
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [com.atlassian.confluence.jmx.JmxSMTPMailServer@1415036[id=1234215073649,name=Gmail SMTP Server,description=<null>,server name=aspmx.l.google.com,username=aaaaa,password=bbbbb,isSessionServer=false,defaultFrom=cordawiki@corda.com,prefix=[localhost],smtpPort=25]] with object name [Confluence:name=MailServer-Gmail SMTP Server]; nested exception is javax.management.InstanceAlreadyExistsException: Confluence:name=MailServer-Gmail SMTP Server
Caused by: javax.management.InstanceAlreadyExistsException: Confluence:name=MailServer-Gmail SMTP Server
at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)
at org.springframework.jmx.support.MBeanRegistrationSupport.doRegister(MBeanRegistrationSupport.java:162)
at org.springframework.jmx.export.MBeanExporter.registerManagedResource(MBeanExporter.java:431)
at com.atlassian.confluence.jmx.MBeanExporterWithUnregisterImpl.registerManagedResource(MBeanExporterWithUnregisterImpl.java:93)
at com.atlassian.confluence.jmx.JmxFilter.registerObject(JmxFilter.java:164)
at com.atlassian.confluence.jmx.JmxFilter.doMailServer(JmxFilter.java:87)
at com.atlassian.confluence.jmx.JmxFilter.registerBeans(JmxFilter.java:63)
at com.atlassian.confluence.jmx.JmxFilter.init(JmxFilter.java:42)
Or:
org.springframework.jmx.export.MBeanExportException: Could not create ModelMBean for managed resource [com.atlassian.confluence.jmx.RequestMetrics@f3a5a5] with key 'com.atlassian.confluence.jmx.RequestMetrics'; nested exception is java.lang.IllegalArgumentException: Null Map
at org.springframework.jmx.export.MBeanExporter.createAndConfigureMBean(MBeanExporter.java:705)
caused by: java.lang.IllegalArgumentException: Null Map
at javax.management.ImmutableDescriptor.<init>(ImmutableDescriptor.java:85)
Cause
JMX (Java Management eXtensions) is a technology for monitoring and managing Java applications. JMX uses objects called MBeans (Managed Beans) to expose data and resources from your application. Some services require JMX and it can prevent Confluence from starting. In the example above, it was due to a GMail Server configuration without a GMail reference in server.xml or confluence.xml.
Please ensure that you are not running multiple Atlassian applications in a single Tomcat container. See Can Multiple Atlassian Products Be Deployed in a Single Tomcat Container? for more information.
Resolution
It's possible that this is a one-time occurrence and may not require disabling JMX. If you find that the issue persists upon a second effort, continue with the resolution below.
If you experience any problems during Confluence startup that are related to JMX, it is possible to disable the JMX registration process. Please place jmxContext.xml in your <confluence-install>/confluence/WEB-INF/classes folder to do so. A restart of Confluence application will be required.