You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/04/20 07:48:16 UTC

svn commit: r1095273 - in /synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp: ClientHandler.java util/ConnectionsView.java util/ConnectionsViewMBean.java util/NhttpMetricsCollector.java

Author: supun
Date: Wed Apr 20 05:48:16 2011
New Revision: 1095273

URL: http://svn.apache.org/viewvc?rev=1095273&view=rev
Log:
giving the connection per host view through jmx, thanks Lahiru for the contribution, SYNAPSE-752

Modified:
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsView.java
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsViewMBean.java
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/NhttpMetricsCollector.java

Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=1095273&r1=1095272&r2=1095273&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java Wed Apr 20 05:48:16 2011
@@ -153,6 +153,9 @@ public class ClientHandler implements NH
         this.countConnections = NHttpConfiguration.getInstance().isCountConnections();
         // set the connection map to the configuration context
         cfgCtx.setProperty(NhttpConstants.OPEN_CONNNECTIONS_MAP, openConnections);
+
+        // set the latest openConnections map to MBean data during connection creation
+        metrics.setConnectionsPerHosts(openConnections);
     }
 
     public void requestReady(final NHttpClientConnection conn) {
@@ -192,7 +195,7 @@ public class ClientHandler implements NH
         if (countConnections) {
             recordConnection(conn);
         }
-        
+
         try {
             processConnection(conn, (Axis2HttpRequest) attachment);
         } catch (ConnectionClosedException e) {

Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsView.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsView.java?rev=1095273&r1=1095272&r2=1095273&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsView.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsView.java Wed Apr 20 05:48:16 2011
@@ -60,7 +60,8 @@ public class ConnectionsView implements 
     private AtomicInteger activeConnections = new AtomicInteger(0);
     private AtomicInteger shortTermOpenedConnections = new AtomicInteger(0);
     private AtomicInteger longTermOpenedConnections = new AtomicInteger(0);
-
+    // The map keeps the key as connectionhost:port and value as the number of connections for that host
+    private Map<String,AtomicInteger> activeConnectionsPerHost = new HashMap<String,AtomicInteger>();
     // The array length must be equal to the number of buckets
     private AtomicInteger[] requestSizeCounters = new AtomicInteger[6];
     private AtomicInteger[] responseSizeCounters = new AtomicInteger[6];
@@ -262,4 +263,18 @@ public class ConnectionsView implements 
         }
         return sum;
     }
+
+    /**
+     * Setter method for activeConnectionsPerHost, this will get called during connection creation
+     * and Connection shutdown operations
+     * @param activeConnectionsPerHost
+     */
+    public void setActiveConnectionPerHostEntry(Map<String,AtomicInteger> activeConnectionsPerHost){
+        this.activeConnectionsPerHost = activeConnectionsPerHost;
+    }
+
+    public Map getActiveConnectionsPerHosts(){
+        return activeConnectionsPerHost;
+    }
+
 }

Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsViewMBean.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsViewMBean.java?rev=1095273&r1=1095272&r2=1095273&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsViewMBean.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/ConnectionsViewMBean.java Wed Apr 20 05:48:16 2011
@@ -34,7 +34,7 @@ public interface ConnectionsViewMBean {
     public Map getRequestSizesMap();
     public Map getResponseSizesMap();
     public Date getLastResetTime();
-
+    public Map getActiveConnectionsPerHosts();
     public void reset();
     
 }

Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/NhttpMetricsCollector.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/NhttpMetricsCollector.java?rev=1095273&r1=1095272&r2=1095273&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/NhttpMetricsCollector.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/NhttpMetricsCollector.java Wed Apr 20 05:48:16 2011
@@ -21,6 +21,9 @@ package org.apache.synapse.transport.nht
 
 import org.apache.axis2.transport.base.MetricsCollector;
 
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.Map;
+
 /**
  * <p>This simple extension of the Axis2 transport MetricsCollector implementation,
  * maintains a ConnectionsView instance, which is updated based on the events fired
@@ -70,4 +73,8 @@ public class NhttpMetricsCollector exten
             view.notifyMessageSize(l, !listener);
         }
     }
+    public void setConnectionsPerHosts(Map<String, AtomicInteger> activeConnectionsPerHost){
+        view.setActiveConnectionPerHostEntry(activeConnectionsPerHost);
+    }
+
 }