From 02105300484ddfd5ca8df193541f68884e4135ea Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Mon, 20 Apr 2009 23:17:01 +0000
Subject: [PATCH] - use platform mbean server by default to allow access to the server monitoring data from VisualVM and similar monitoring tools.
---
opends/src/server/org/opends/server/core/DirectoryServer.java | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/opends/src/server/org/opends/server/core/DirectoryServer.java b/opends/src/server/org/opends/server/core/DirectoryServer.java
index c5572fb..dae0c0f 100644
--- a/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -59,6 +59,7 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
+import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
@@ -1090,7 +1091,7 @@
/**
- * Performs a minimal set of JMX initialization. This may be used by the core
+ * Performs a minimal set of JMX initialization. This may be used by the core
* Directory Server or by command-line tools.
*
* @throws InitializationException If a problem occurs while attempting to
@@ -1101,12 +1102,25 @@
{
try
{
- // FIXME -- Should we use the plaform Mbean Server or
- // should we use a private one ?
- directoryServer.mBeanServer = MBeanServerFactory.newMBeanServer();
- // directoryServer.mBeanServer =
- // ManagementFactory.getPlatformMBeanServer();
+ // It is recommended by ManagementFactory javadoc that the platform
+ // MBeanServer also be used to register other application managed
+ // beans besides the platform MXBeans. Try platform MBeanServer
+ // first. If it fails create a new, private, MBeanServer instance.
+ try
+ {
+ directoryServer.mBeanServer =
+ ManagementFactory.getPlatformMBeanServer();
+ }
+ catch (Exception e)
+ {
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.WARNING, e);
+ }
+ directoryServer.mBeanServer =
+ MBeanServerFactory.newMBeanServer();
+ }
directoryServer.mBeans = new ConcurrentHashMap<DN,JMXMBean>();
registerAlertGenerator(directoryServer);
}
--
Gitblit v1.10.0