mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
优化Mbean的registerMBean&unregisterMBean方法的冲突问题
This commit is contained in:
@@ -144,7 +144,9 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
|
||||
synchronized (instances) {
|
||||
if (instances.size() == 0) {
|
||||
try {
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME);
|
||||
int id = System.identityHashCode(instance.getClass());
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME + ",id=" + id);
|
||||
// ObjectName objectName = new ObjectName(MBEAN_NAME);
|
||||
if (!mbeanServer.isRegistered(objectName)) {
|
||||
mbeanServer.registerMBean(instance, objectName);
|
||||
}
|
||||
@@ -206,7 +208,9 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
|
||||
|
||||
if (instances.size() == 0) {
|
||||
try {
|
||||
mbeanServer.unregisterMBean(new ObjectName(MBEAN_NAME));
|
||||
int id = System.identityHashCode(instance.getClass());
|
||||
ObjectName objName = new ObjectName(MBEAN_NAME + ",id=" + id);
|
||||
mbeanServer.unregisterMBean(objName);
|
||||
} catch (Throwable ex) {
|
||||
LOG.error("unregister mbean error", ex);
|
||||
}
|
||||
|
||||
@@ -357,8 +357,9 @@ public final class DruidStatService implements DruidStatServiceMBean {
|
||||
public static void registerMBean() {
|
||||
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
|
||||
try {
|
||||
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME);
|
||||
int id = System.identityHashCode(instance.getClass());
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME + ",id=" + id);
|
||||
// ObjectName objectName = new ObjectName(MBEAN_NAME);
|
||||
if (!mbeanServer.isRegistered(objectName)) {
|
||||
mbeanServer.registerMBean(instance, objectName);
|
||||
}
|
||||
@@ -369,9 +370,10 @@ public final class DruidStatService implements DruidStatServiceMBean {
|
||||
|
||||
public static void unregisterMBean() {
|
||||
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
|
||||
|
||||
try {
|
||||
mbeanServer.unregisterMBean(new ObjectName(MBEAN_NAME));
|
||||
int id = System.identityHashCode(instance.getClass());
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME + ",id=" + id);
|
||||
mbeanServer.unregisterMBean(objectName);
|
||||
} catch (JMException ex) {
|
||||
LOG.error("unregister mbean error", ex);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user