Hi,

Apache ZooKeeper has extensive support for JMX and JMX console is enabled
by default at the server start up [1]. However with this ZooKeeper
registers log4j MBeans as well and this throws a following error log in the
MB admin console when ZooKeeper server is started in clustered mode of MB
though it doesn't break any functionality.

TID: [0] [MB] [2013-07-17 20:43:55,894]  INFO
{org.wso2.carbon.coordination.server.CoordinationServer} -  Starting
Coordination server in clustered mode...
{org.wso2.carbon.coordination.server.CoordinationServer}
TID: [0] [MB] [2013-07-17 20:43:55,916] ERROR
{org.apache.log4j.jmx.AppenderDynamicMBean} -  Could not add
DynamicLayoutMBean for
[CARBON_LOGFILE,layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout].
{org.apache.log4j.jmx.AppenderDynamicMBean}
javax.management.InstanceAlreadyExistsException:
log4j:appender=CARBON_LOGFILE,layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout
    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:483)
    at
org.apache.log4j.jmx.AppenderDynamicMBean.registerLayoutMBean(Unknown
Source)
    at org.apache.log4j.jmx.AppenderDynamicMBean.preRegister(Unknown Source)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.preRegisterInvoke(DefaultMBeanServerInterceptor.java:1010)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:938)
    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:483)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.registerAppenderMBean(Unknown
Source)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.appenderMBeanRegistration(Unknown
Source)
    at org.apache.log4j.jmx.LoggerDynamicMBean.postRegister(Unknown Source)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.postRegisterInvoke(DefaultMBeanServerInterceptor.java:1035)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:974)
    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:483)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at
org.apache.zookeeper.jmx.ManagedUtil.registerLog4jMBeans(ManagedUtil.java:67)
    at
org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:122)
    at
org.wso2.carbon.coordination.server.CoordinationServer.run(CoordinationServer.java:78)
TID: [0] [MB] [2013-07-17 20:43:55,916] ERROR
{org.apache.log4j.jmx.AppenderDynamicMBean} -  Could not add
DynamicLayoutMBean for
[CARBON_LOGFILE,layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout].
{org.apache.log4j.jmx.AppenderDynamicMBean}
javax.management.InstanceAlreadyExistsException:
log4j:appender=CARBON_LOGFILE,layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout
    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:483)
    at
org.apache.log4j.jmx.AppenderDynamicMBean.registerLayoutMBean(Unknown
Source)
    at org.apache.log4j.jmx.AppenderDynamicMBean.preRegister(Unknown Source)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.preRegisterInvoke(DefaultMBeanServerInterceptor.java:1010)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:938)
    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:483)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.registerAppenderMBean(Unknown
Source)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.appenderMBeanRegistration(Unknown
Source)
    at org.apache.log4j.jmx.LoggerDynamicMBean.postRegister(Unknown Source)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.postRegisterInvoke(DefaultMBeanServerInterceptor.java:1035)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:974)
    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:483)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at
org.apache.zookeeper.jmx.ManagedUtil.registerLog4jMBeans(ManagedUtil.java:67)
    at
org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:122)
    at
org.wso2.carbon.coordination.server.CoordinationServer.run(CoordinationServer.java:78)
TID: [0] [MB] [2013-07-17 20:43:55,919] ERROR
{org.apache.log4j.jmx.LoggerDynamicMBean} -  Could not add appenderMBean
for [CARBON_LOGFILE]. {org.apache.log4j.jmx.LoggerDynamicMBean}
javax.management.InstanceAlreadyExistsException:
log4j:appender=CARBON_LOGFILE
    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:483)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.registerAppenderMBean(Unknown
Source)
    at
org.apache.log4j.jmx.LoggerDynamicMBean.appenderMBeanRegistration(Unknown
Source)
    at org.apache.log4j.jmx.LoggerDynamicMBean.postRegister(Unknown Source)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.postRegisterInvoke(DefaultMBeanServerInterceptor.java:1035)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:974)
    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:483)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at org.apache.log4j.jmx.HierarchyDynamicMBean.addLoggerMBean(Unknown
Source)
    at
org.apache.zookeeper.jmx.ManagedUtil.registerLog4jMBeans(ManagedUtil.java:67)
    at
org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:122)
    at
org.wso2.carbon.coordination.server.CoordinationServer.run(CoordinationServer.java:78)

As a workaround i disabled Log4j MBean registration by giving *sh
wso2server.sh -Dzookeeper.jmx.log4j.disable=true* when starting Message
Broker in clustered mode. Is it ok do disable this or does this happens due
to an error in the coordination component? If it is OK to disable this is
there any configuration parameter which can be defined in doing this than
entering it from the terminal?

Thanks!
Ishara

[1] http://zookeeper.apache.org/doc/r3.3.3/zookeeperJMX.html

-- 
Ishara Premasada
Software Engineer,
WSO2 Inc. http://wso2.com/
*Blog   :  http://isharapremadasa.blogspot.com/
Twitter       :  https://twitter.com/ishadil
Mobile       : +94 714445832*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to