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