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);
+    }
+
 }


Reply via email to