Druid register mbean error

key: [com.alibaba.druid.stat.DruidDataSourceStatManager.addDataSource(DruidDataSourceStatManager.java:154)] register mbean error

在使用数据库连接池时(本文通用于其他使用jmx mbean的应用),运行几天后出现如下错误

2014/11/18 10:31:00,617 [ERROR] [localhost-startStop-6] [com.alibaba.druid.stat.DruidDataSourceStatManager.addDataSource(DruidDataSourceStatManager.java:154)] register mbean errorjavax.management.InstanceAlreadyExistsException: com.alibaba.druid:type=DruidDataSource,id=Druid MySQL DB poolat 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 com.alibaba.druid.stat.DruidDataSourceStatManager.addDataSource(DruidDataSourceStatManager.java:152)at com.alibaba.druid.pool.DruidDataSource$1.run(DruidDataSource.java:1298)at java.security.AccessController.doPrivileged(Native Method)at com.alibaba.druid.pool.DruidDataSource.registerMbean(DruidDataSource.java:1294)at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:623)at com.longdai.data.ConnectionManagerDruid.<init>(ConnectionManagerDruid.java:68)at com.longdai.data.ConnectionManager.getInstance(ConnectionManager.java:86)at com.longdai.data.dao.Database.<clinit>(Database.java:22)at com.longdai.service.admin.CloseNetWorkService.getNetWorkById(CloseNetWorkService.java:87)at com.longdai.service.admin.CloseNetWorkService$$FastClassByCGLIB$$bbdb465c.invoke(<generated>)at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)at com.gozap.services.ServiceMethodInterceptor.invoke(ServiceMethodInterceptor.java:31)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)at com.longdai.service.admin.CloseNetWorkService$$EnhancerByCGLIB$$19cbebaf.getNetWorkById(<generated>)at com.longdai.system.listener.CloseNetWorkConfigiListener.contextInitialized(CloseNetWorkConfigiListener.java:37)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)at java.lang.Thread.run(Thread.java:619)查看源码,一直跟踪到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) //这里入口

一路跟踪源码,传入的参数一直是name属性,查看上层 DruidDataSourceStatManager.java addDataSource(Object dataSource, String name)

在看上层: DruidDataSource.java line:1298

不论你在什么时候结束,重要的是结束之后就不要悔恨

Druid register mbean error

相关文章:

你感兴趣的文章:

标签云: