From fa6e5bb0c17c4d59d8598979feb1a7701bc32679 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 12 Dec 2006 23:55:39 +0000
Subject: [PATCH] Publish a separate monitor entry for each connection handler, which includes the protocol, listen address/port, number of established connections, and information about each connection.
---
opends/src/server/org/opends/server/api/ConnectionHandler.java | 78 +++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 0 deletions(-)
diff --git a/opends/src/server/org/opends/server/api/ConnectionHandler.java b/opends/src/server/org/opends/server/api/ConnectionHandler.java
index 74a03e3..fde92b8 100644
--- a/opends/src/server/org/opends/server/api/ConnectionHandler.java
+++ b/opends/src/server/org/opends/server/api/ConnectionHandler.java
@@ -31,6 +31,8 @@
import java.util.Collection;
import org.opends.server.config.ConfigEntry;
import org.opends.server.config.ConfigException;
+import org.opends.server.monitors.ConnectionHandlerMonitor;
+import org.opends.server.types.HostPort;
import org.opends.server.types.InitializationException;
import static org.opends.server.loggers.Debug.*;
@@ -52,6 +54,11 @@
+ // The monitor associated with this connection handler.
+ private ConnectionHandlerMonitor monitor;
+
+
+
/**
* Creates a new instance of this connection handler. This must be
* called by all connection handlers, and all connection handlers
@@ -65,6 +72,7 @@
super(threadName);
assert debugConstructor(CLASS_NAME, String.valueOf(threadName));
+ monitor = null;
}
@@ -114,6 +122,44 @@
/**
+ * Retrieves a name that may be used to refer to this connection
+ * handler. Every connection handler instance (even handlers of the
+ * same type) must have a unique name.
+ *
+ * @return A unique name that may be used to refer to this
+ * connection handler.
+ */
+ public abstract String getConnectionHandlerName();
+
+
+
+ /**
+ * Retrieves the name of the protocol used to communicate with
+ * clients. It should take into account any special naming that may
+ * be needed to express any security mechanisms or other constraints
+ * in place (e.g., "LDAPS" for LDAP over SSL).
+ *
+ * @return The name of the protocol used to communicate with
+ * clients.
+ */
+ public abstract String getProtocol();
+
+
+
+ /**
+ * Retrieves information about the listener(s) that will be used to
+ * accept client connections.
+ *
+ * @return Information about the listener(s) that will be used to
+ * accept client connections, or an empty list if this
+ * connection handler does not accept connections from
+ * network clients.
+ */
+ public abstract Collection<HostPort> getListeners();
+
+
+
+ /**
* Retrieves the set of active client connections that have been
* established through this connection handler.
*
@@ -133,6 +179,38 @@
/**
+ * Retrieves the monitor instance for this connection handler.
+ *
+ * @return The monitor instance for this connection handler, or
+ * {@code null} if none has been provided.
+ */
+ public ConnectionHandlerMonitor getConnectionHandlerMonitor()
+ {
+ assert debugEnter(CLASS_NAME, "getConnectionHandlerMonitor");
+
+ return monitor;
+ }
+
+
+
+ /**
+ * Sets the monitor instance for this connection handler.
+ *
+ * @param monitor The monitor instance for this connection
+ * handler.
+ */
+ public void setConnectionHandlerMonitor(
+ ConnectionHandlerMonitor monitor)
+ {
+ assert debugEnter(CLASS_NAME, "setConnectionHandlerMonitor",
+ String.valueOf(monitor));
+
+ this.monitor = monitor;
+ }
+
+
+
+ /**
* Retrieves a string representation of this connection handler.
*
* @return A string representation of this connection handler.
--
Gitblit v1.10.0