You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/11/15 00:51:47 UTC
svn commit: r344275 - in /portals/jetspeed-2/trunk/components/statistics: ./
src/java/org/apache/jetspeed/statistics/impl/
src/test/org/apache/jetspeed/statistics/
Author: taylor
Date: Mon Nov 14 15:51:45 2005
New Revision: 344275
URL: http://svn.apache.org/viewcvs?rev=344275&view=rev
Log:
cleanup to Statistics thread processing and general debug
contribution from Chris Schaefer
Modified:
portals/jetspeed-2/trunk/components/statistics/project.xml
portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/AggregateStatisticsImpl.java
portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java
portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortalStatisticsImpl.java
portals/jetspeed-2/trunk/components/statistics/src/test/org/apache/jetspeed/statistics/TestStatistics.java
Modified: portals/jetspeed-2/trunk/components/statistics/project.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/project.xml?rev=344275&r1=344274&r2=344275&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/project.xml (original)
+++ portals/jetspeed-2/trunk/components/statistics/project.xml Mon Nov 14 15:51:45 2005
@@ -42,6 +42,15 @@
<war.bundle>true</war.bundle>
</properties>
</dependency>
+
+ <dependency>
+ <id>derby</id>
+ <groupId>org.apache.derby</groupId>
+ <version>10.1.1.0</version>
+ <properties>
+ <war.bundle>false</war.bundle>
+ </properties>
+ </dependency>
<dependency>
<id>jetspeed-registry</id>
Modified: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/AggregateStatisticsImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/AggregateStatisticsImpl.java?rev=344275&r1=344274&r2=344275&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/AggregateStatisticsImpl.java (original)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/AggregateStatisticsImpl.java Mon Nov 14 15:51:45 2005
@@ -15,6 +15,7 @@
package org.apache.jetspeed.statistics.impl;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -141,6 +142,20 @@
s = s + "min time = " + this.minProcessingTime + "\n";
s = s + "avg time = " + this.avgProcessingTime + "\n";
s = s + "stddev = " + this.stddevProcessingTime + "\n";
+ String listStr ="";
+ Iterator it = this.statlist.iterator();
+ int count = 0;
+ int size = statlist.size();
+ int max = 5;
+ while((it.hasNext()) && (count++<max)) {
+ Object o = it.next();
+ listStr = listStr+"\t"+o+"\n";
+ }
+ if(size > max) {
+ s = s + "\tlist (top "+max+"):\n"+listStr;
+ } else {
+ s = s + "\tlist ("+size+" entries):\n"+listStr;
+ }
return s;
}
Modified: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java?rev=344275&r1=344274&r2=344275&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java (original)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/BatchedStatistics.java Mon Nov 14 15:51:45 2005
@@ -49,7 +49,13 @@
}
msLastFlushTime = System.currentTimeMillis();
thread = new Thread(this, name);
+
+ }
+
+ public void startThread() {
+
thread.start();
+
// give a quick break until the thread is running
// we know thread is running when done is false
while (this.done)
@@ -61,7 +67,6 @@
{
}
}
-
}
protected Connection getConnection() throws SQLException
Modified: portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortalStatisticsImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortalStatisticsImpl.java?rev=344275&r1=344274&r2=344275&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortalStatisticsImpl.java (original)
+++ portals/jetspeed-2/trunk/components/statistics/src/java/org/apache/jetspeed/statistics/impl/PortalStatisticsImpl.java Mon Nov 14 15:51:45 2005
@@ -259,6 +259,7 @@
portletBatch = new BatchedPortletStatistics(ds,
this.maxRecordToFlush_Portlet,
this.maxTimeMsToFlush_Portlet, "portletLogBatcher");
+ portletBatch.startThread();
}
portletBatch.addStatistic(record);
@@ -270,6 +271,7 @@
pageBatch = new BatchedPageStatistics(ds,
this.maxRecordToFlush_Page, this.maxTimeMsToFlush_Page,
"pageLogBatcher");
+ pageBatch.startThread();
}
pageBatch.addStatistic(record);
@@ -281,6 +283,7 @@
userBatch = new BatchedUserStatistics(ds,
this.maxRecordToFlush_User, this.maxTimeMsToFlush_User,
"userLogBatcher");
+ userBatch.startThread();
}
userBatch.addStatistic(record);
@@ -608,6 +611,7 @@
return gcEnd.getTime();
}
+
/**
* @see org.apache.jetspeed.statistics.PortalStatistics#queryStatistics(org.apache.jetspeed.statistics.StatisticsQueryCriteria)
*/
@@ -625,14 +629,7 @@
Date start = getStartDateFromPeriod(criteria.getTimePeriod(), end);
String queryType = criteria.getQueryType();
- String listsizeStr = criteria.getListsize();
- int listsize = 5;
- try
- {
- listsize = Integer.parseInt(listsizeStr);
- } catch (NumberFormatException e1)
- {
- }
+
if (PortalStatistics.QUERY_TYPE_USER.equals(queryType))
{
@@ -651,42 +648,37 @@
throw new InvalidCriteriaException(
" invalid queryType passed to queryStatistics");
}
- String orderColumn = "int_count";
+ String orderColumn = "itemcount";
String ascDesc = "DESC";
if (!PortalStatistics.QUERY_TYPE_USER.equals(queryType))
{
- query = "select count(*) as int_count, MIN(ELAPSED_TIME) as min_elapsed_time, "
- + "AVG(ELAPSED_TIME) as avg_elapsed_time, MAX(ELAPSED_TIME) as max_elapsed_time from "
+ query = "select count(*) as itemcount , MIN(ELAPSED_TIME) as amin ,AVG(ELAPSED_TIME) as aavg ,MAX(ELAPSED_TIME) as amax from "
+ tableName + " where time_stamp > ? and time_stamp < ?";
- query2 = "select count(*) as int_count ,"
+ query2 = "select count(*) as itemcount ,"
+ groupColumn
- + ", MIN(ELAPSED_TIME) as min_elapsed_time, AVG(ELAPSED_TIME) as avg_elapsed_time"
- + ", MAX(ELAPSED_TIME) as max_elapsed_time "
+ + ", MIN(ELAPSED_TIME) as amin ,AVG(ELAPSED_TIME) as aavg ,MAX(ELAPSED_TIME) as amax "
+ "from " + tableName
+ " where time_stamp > ? and time_stamp < ? group by "
- + groupColumn + " order by " + orderColumn + " " + ascDesc
- + " limit " + listsize;
+ + groupColumn + " order by " + orderColumn + " " + ascDesc;
} else
{
- query = "select count(*) as int_count, MIN(ELAPSED_TIME) as min_elapsed_time, "
- + "AVG(ELAPSED_TIME) as avg_elapsed_time, MAX(ELAPSED_TIME) as max_elapsed_time from "
+ query = "select count(*) as itemcount , MIN(ELAPSED_TIME) as amin,AVG(ELAPSED_TIME) as aavg ,MAX(ELAPSED_TIME) as amax from "
+ tableName
+ " where time_stamp > ? and time_stamp < ? and status = 2";
- query2 = "select count(*) as int_count ,"
+ query2 = "select count(*) as itemcount ,"
+ groupColumn
- + ", MIN(ELAPSED_TIME) as min_elapsed_time, AVG(ELAPSED_TIME) as avg_elapsed_time"
- + ", MAX(ELAPSED_TIME) as max_elapsed_time "
+ + ", MIN(ELAPSED_TIME) as amin ,AVG(ELAPSED_TIME) as aavg ,MAX(ELAPSED_TIME) as amax "
+ "from "
+ tableName
+ " where time_stamp > ? and time_stamp < ? and status = 2 group by "
- + groupColumn + " order by " + orderColumn + " " + ascDesc
- + " limit " + listsize;
+ + groupColumn + " order by " + orderColumn + " " + ascDesc;
}
+ Connection con = null;
try
{
- Connection con = ds.getConnection();
+ con = ds.getConnection();
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setTimestamp(1, new Timestamp(start.getTime()));
pstmt.setTimestamp(2, new Timestamp(end.getTime()));
@@ -699,14 +691,11 @@
}
if (rs.next())
{
- as.setHitCount(rs.getInt("int_count"));
+ as.setHitCount(rs.getInt("itemcount"));
- as.setMinProcessingTime(rs.getFloat("min_elapsed_time")
- / denominator);
- as.setAvgProcessingTime(rs.getFloat("avg_elapsed_time")
- / denominator);
- as.setMaxProcessingTime(rs.getFloat("max_elapsed_time")
- / denominator);
+ as.setMinProcessingTime(rs.getFloat("amin") / denominator);
+ as.setAvgProcessingTime(rs.getFloat("aavg") / denominator);
+ as.setMaxProcessingTime(rs.getFloat("amax") / denominator);
}
PreparedStatement pstmt2 = con.prepareStatement(query2);
@@ -714,10 +703,22 @@
pstmt2.setTimestamp(2, new Timestamp(end.getTime()));
ResultSet rs2 = pstmt2.executeQuery();
- while (rs2.next())
+ int rowCount = 0;
+ int totalRows = 5;
+ String listsizeStr = criteria.getListsize();
+ int temp = -1;
+ try {
+ temp = Integer.parseInt(listsizeStr);
+ } catch (NumberFormatException e) {
+ }
+ if(temp != -1) {
+ totalRows = temp;
+ }
+
+ while ((rs2.next()) && (rowCount < totalRows))
{
Map row = new HashMap();
- row.put("count", "" + rs2.getInt("int_count"));
+ row.put("count", "" + rs2.getInt("itemcount"));
String col = rs2.getString(groupColumn);
int maxColLen = 35;
if (col != null)
@@ -731,17 +732,27 @@
row.put("groupColumn", col);
row.put("min", ""
- + floatFormatter(rs2.getFloat("min_elapsed_time") / denominator));
+ + floatFormatter(rs2.getFloat("amin") / denominator));
row.put("avg", ""
- + floatFormatter(rs2.getFloat("avg_elapsed_time") / denominator));
+ + floatFormatter(rs2.getFloat("aavg") / denominator));
row.put("max", ""
- + floatFormatter(rs2.getFloat("max_elapsed_time") / denominator));
+ + floatFormatter(rs2.getFloat("amax") / denominator));
as.addRow(row);
+ rowCount++;
}
} catch (SQLException e)
{
throw new InvalidCriteriaException(e.toString());
+ }
+ finally {
+ try {
+ if(con != null) {
+ con.close();
+ }
+ } catch (SQLException e) {
+ logger.error("error releasing the connection",e);
+ }
}
return as;
Modified: portals/jetspeed-2/trunk/components/statistics/src/test/org/apache/jetspeed/statistics/TestStatistics.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/statistics/src/test/org/apache/jetspeed/statistics/TestStatistics.java?rev=344275&r1=344274&r2=344275&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/statistics/src/test/org/apache/jetspeed/statistics/TestStatistics.java (original)
+++ portals/jetspeed-2/trunk/components/statistics/src/test/org/apache/jetspeed/statistics/TestStatistics.java Mon Nov 14 15:51:45 2005
@@ -17,6 +17,7 @@
import java.security.Principal;
import java.sql.Connection;
+import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -31,6 +32,7 @@
import org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl;
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.security.impl.UserPrincipalImpl;
+import org.apache.jetspeed.statistics.impl.PortalStatisticsImpl;
import org.apache.jetspeed.statistics.impl.StatisticsQueryCriteriaImpl;
import com.mockrunner.mock.web.MockHttpServletRequest;
@@ -76,6 +78,7 @@
protected void setUp() throws Exception
{
super.setUp();
+
this.statistics = (PortalStatistics) ctx.getBean("PortalStatistics");
assertNotNull("statistics not found ", statistics);
}
@@ -83,8 +86,14 @@
public void clearDBs()
{
+
try
{
+ DatabaseMetaData dmd = statistics.getDataSource().getConnection().getMetaData();
+ System.out.println("Oh... just for reference we're running against "+dmd.getDatabaseProductName());
+ System.out.println("with the driver = "+dmd.getDriverName());
+ System.out.println(" with the url = "+dmd.getURL());
+
Connection con = statistics.getDataSource().getConnection();
PreparedStatement psmt = con
@@ -247,30 +256,41 @@
}
+
public void testQuerySystem() throws Exception
{
System.out.println("testing Query System");
StatisticsQueryCriteria sqc = new StatisticsQueryCriteriaImpl();
sqc.setQueryType(PortalStatistics.QUERY_TYPE_USER);
- sqc.setListsize("5");
+ int desired = 5;
+ sqc.setListsize(""+desired);
sqc.setSorttype("count");
sqc.setSortorder("desc");
AggregateStatistics as = statistics.queryStatistics(sqc);
+ assertNotNull(as);
System.out.println("user = " + as);
+ int size = as.getStatlist().size();
+ assertTrue( (size <=desired));
sqc.setQueryType(PortalStatistics.QUERY_TYPE_PORTLET);
- sqc.setListsize("5");
+ sqc.setListsize(""+desired);
sqc.setSorttype("count");
sqc.setSortorder("desc");
as = statistics.queryStatistics(sqc);
- System.out.println("user = " + as);
+ assertNotNull(as);
+ System.out.println("portlet = " + as);
+ size = as.getStatlist().size();
+ assertTrue( (size <=desired));
sqc.setQueryType(PortalStatistics.QUERY_TYPE_PAGE);
- sqc.setListsize("5");
+ sqc.setListsize(""+desired);
sqc.setSorttype("count");
sqc.setSortorder("desc");
as = statistics.queryStatistics(sqc);
- System.out.println("user = " + as);
+ assertNotNull(as);
+ System.out.println("page = " + as);
+ size = as.getStatlist().size();
+ assertTrue( (size <=desired));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org