You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ri...@apache.org on 2008/01/25 12:58:46 UTC
svn commit: r615192 - in
/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc:
codec/HttpIoHandler.java util/TimeMonitor.java
Author: rickmcguire
Date: Fri Jan 25 03:58:44 2008
New Revision: 615192
URL: http://svn.apache.org/viewvc?rev=615192&view=rev
Log:
GERONIMO-3761 Committed revision 614952.
Patch provided by Sangjin Lee.
Modified:
geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java
geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/util/TimeMonitor.java
Modified: geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java?rev=615192&r1=615191&r2=615192&view=diff
==============================================================================
--- geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java (original)
+++ geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java Fri Jan 25 03:58:44 2008
@@ -241,8 +241,6 @@
ResponseFuture result = request.getResponseFuture();
result.setException(throwable);
- // notify any interesting parties that this is starting
- client.notifyMonitoringListeners(MonitoringEvent.CONNECTION_CLOSED_BY_SERVER, request);
//Exception is bad, so just close it up
ioSession.close();
}
Modified: geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/util/TimeMonitor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/util/TimeMonitor.java?rev=615192&r1=615191&r2=615192&view=diff
==============================================================================
--- geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/util/TimeMonitor.java (original)
+++ geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/util/TimeMonitor.java Fri Jan 25 03:58:44 2008
@@ -23,14 +23,18 @@
import java.util.concurrent.atomic.AtomicLong;
/**
- * Simple monitoring listener for tracking average
- * request times.
+ * Simple monitoring listener for tracking average request times and average
+ * connect times. This is provided mainly to illustrate how one can collect
+ * timing data.
*/
public final class TimeMonitor extends CountingMonitor {
- private final AtomicInteger requestCount = new AtomicInteger();
- private final AtomicLong requestTimes = new AtomicLong();
+ private final AtomicInteger requestCount = new AtomicInteger();
+ private final AtomicLong requestTimes = new AtomicLong();
+
+ private final AtomicInteger connectCount = new AtomicInteger();
+ private final AtomicLong connectTimes = new AtomicLong();
- @Override
+ @Override
/**
* Process a notification event. If this is a
* REQUEST_COMPLETED event, the request timeing
@@ -39,17 +43,22 @@
*
* @param event The notification event.
*/
- public void notification(MonitoringEvent event) {
- super.notification(event);
- // get the response time
- int type = event.getType();
- if (type == MonitoringEvent.REQUEST_COMPLETED) {
- requestCount.incrementAndGet();
- long elapsed = event.getTimeStamp() - event.getRequest().getRequestStartTime();
- requestTimes.addAndGet(elapsed);
- }
- }
-
+ public void notification(MonitoringEvent event) {
+ super.notification(event);
+
+ // get the response time
+ int type = event.getType();
+ if (type == MonitoringEvent.REQUEST_COMPLETED) {
+ requestCount.incrementAndGet();
+ long elapsed = event.getTimeStamp() - event.getRequest().getRequestStartTime();
+ requestTimes.addAndGet(elapsed);
+ } else if (type == MonitoringEvent.CONNECTION_SUCCESSFUL) {
+ connectCount.incrementAndGet();
+ long elapsed = event.getTimeStamp() - event.getRequest().getConnectStartTime();
+ connectTimes.addAndGet(elapsed);
+ }
+ }
+
/**
* Return the average calculated response time for
* the processed requests.
@@ -57,10 +66,25 @@
* @return The average response time, in milliseconds, for
* all recorded completed requests.
*/
- public long getAverageResponseTime() {
- if (requestCount.get() == 0) {
- return 0L;
- }
- return requestTimes.get()/requestCount.get();
- }
+ public long getAverageResponseTime() {
+ if (requestCount.get() == 0) {
+ return 0L;
+ }
+ return requestTimes.get()/requestCount.get();
+ }
+
+
+ /**
+ * Return the average calculated connect time for
+ * the processed requests.
+ *
+ * @return The average connect time, in milliseconds, for
+ * all recorded completed requests.
+ */
+ public long getAverageConnectTime() {
+ if (connectCount.get() == 0) {
+ return 0L;
+ }
+ return connectTimes.get()/connectCount.get();
+ }
}