GG-9673 Need to investigate MBeans registration in Weblogic cluster environment Added jvmId property to mbean name.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a7b426cf Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a7b426cf Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a7b426cf Branch: refs/heads/ignite-43 Commit: a7b426cffe243ad6270a06bc251e283acf3a5b43 Parents: 5fd0d7c Author: sevdokimov <sevdoki...@gridgain.com> Authored: Mon Jan 12 12:48:55 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Mon Jan 12 12:48:55 2015 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/IgniteSystemProperties.java | 13 +++++++++++++ .../main/java/org/gridgain/grid/util/GridUtils.java | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7b426cf/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java index c403fd7..b4d9d81 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java @@ -12,6 +12,7 @@ package org.apache.ignite; import org.jetbrains.annotations.*; import javax.net.ssl.*; +import java.lang.management.*; /** * Contains constants for all system properties and environmental variables in GridGain. These @@ -448,6 +449,18 @@ public final class IgniteSystemProperties { public static final String GG_WORK_DIR = "GRIDGAIN_WORK_DIR"; /** + * If this property is set to {@code true} then GridGain will append + * hash code of {@link Ignite} class as hex string and append + * JVM name returned by {@link RuntimeMXBean#getName()}. + * <p> + * This may be helpful when running GridGain in some application server + * clusters or similar environments to avoid MBean name collisions. + * <p> + * Default is {@code false}. + */ + public static final String GG_MBEAN_APPEND_JVM_ID = "GRIDGAIN_MBEAN_APPEND_JVM_ID"; + + /** * Enforces singleton. */ private IgniteSystemProperties() { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7b426cf/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java index 37c2109..62d27d3 100644 --- a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java +++ b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java @@ -3867,6 +3867,8 @@ public abstract class GridUtils { throws MalformedObjectNameException { SB sb = new SB(JMX_DOMAIN + ':'); + appendJvmId(sb); + if (gridName != null && !gridName.isEmpty()) sb.a("grid=").a(gridName).a(','); @@ -3879,6 +3881,18 @@ public abstract class GridUtils { } /** + * @param sb Sb. + */ + private static void appendJvmId(SB sb) { + if (getBoolean(GG_MBEAN_APPEND_JVM_ID)) { + String gridId = Integer.toHexString(Ignite.class.getClassLoader().hashCode()) + "_" + + ManagementFactory.getRuntimeMXBean().getName(); + + sb.a("jvmId=").a(gridId).a(','); + } + } + + /** * Mask component name to make sure that it is not {@code null}. * * @param cacheName Component name to mask, possibly {@code null}. @@ -3902,6 +3916,8 @@ public abstract class GridUtils { throws MalformedObjectNameException { SB sb = new SB(JMX_DOMAIN + ':'); + appendJvmId(sb); + if (gridName != null && !gridName.isEmpty()) sb.a("grid=").a(gridName).a(',');