You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2008/06/17 02:17:33 UTC
svn commit: r668357 - in
/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance:
LoadGenerator.java dbcp/DBCPSoak.java dbcp/DBCPTest.java pool/PoolSoak.java
Author: psteitz
Date: Mon Jun 16 17:17:33 2008
New Revision: 668357
URL: http://svn.apache.org/viewvc?rev=668357&view=rev
Log:
Added cleanUp to LoadGenerator.
Modified:
commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/LoadGenerator.java
commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPSoak.java
commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPTest.java
commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/LoadGenerator.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/LoadGenerator.java?rev=668357&r1=668356&r2=668357&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/LoadGenerator.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/LoadGenerator.java Mon Jun 16 17:17:33 2008
@@ -82,13 +82,17 @@
/**
* <p>Invokes {@link #configure()} to load digester rules, then digster.parse,
- * then {@link #init()} to initialize configuration members. Then spawns and
+ * then {@link #init} to initialize configuration members. Then spawns and
* executes {@link #numClients} ClientThreads using {@link #makeClientThread}
- * to create the ClientThread instances.
- * </p>
+ * to create the ClientThread instances. Waits for all spawned threads to
+ * terminate and then logs accumulated statistics, using
+ * {@link Statistics#displayOverallSummary}</p>
+ *
* <p>Subclasses should not need to override this method, but must implement
- * makeClientThread and may override configure and init to prepare data to
- * pass to makeClientThread.</p>
+ * {@link #makeClientThread} and may override {@link #configure} and
+ * {@link #init} to prepare data to pass to <code>makeClientThread</code>,
+ * and {@link #cleanUp} to clean up after all threads terminate.
+ * </p>
*
* @throws Exception
*/
@@ -111,6 +115,9 @@
// Log summary statistics for accumulated metrics
logger.info(stats.displayOverallSummary());
+
+ // clean up
+ cleanUp();
}
protected abstract ClientThread makeClientThread(
@@ -129,6 +136,35 @@
*/
protected void init() throws Exception {}
+
+ /**
+ * This method is invoked by {@link #execute()} after all spawned threads
+ * have terminated. Override to clean up any resources allocated in
+ * {@link #init().
+ *
+ * @throws Exception
+ */
+ protected void cleanUp() throws Exception {}
+
+
+ /**
+ * Configures basic run parameters. Invoked by Digester via a rule defined
+ * in {@link #configure()}.
+ *
+ * @param iterations number of iterationss
+ * @param clients number of client threads
+ * @param minDelay minimum delay between client thread requests (ms)
+ * @param maxDelay maximimum delay between client thread requests (ms)
+ * @param sigma standard deviation of delay
+ * @param delayType type of delay (constant, gaussian, poisson)
+ * @param rampType type of ramp (none, linear, random)
+ * @param rampPeriod rampup/rampdown time
+ * @param peakPeriod peak period
+ * @param troughPeriod trough period
+ * @param cycleType cycle type (none, oscillating)
+ * @throws ConfigurationException
+ */
+
public void configureRun(String iterations, String clients,
String minDelay, String maxDelay, String sigma,
String delayType, String rampType, String rampPeriod,
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPSoak.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPSoak.java?rev=668357&r1=668356&r2=668357&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPSoak.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPSoak.java Mon Jun 16 17:17:33 2008
@@ -168,6 +168,13 @@
}
}
+ /**
+ * Close connection pool
+ */
+ protected void cleanUp() throws Exception {
+ connectionPool.close();
+ }
+
protected ClientThread makeClientThread(
long iterations, long minDelay, long maxDelay, double sigma,
String delayType, long rampPeriod, long peakPeriod,
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPTest.java?rev=668357&r1=668356&r2=668357&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPTest.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/dbcp/DBCPTest.java Mon Jun 16 17:17:33 2008
@@ -25,7 +25,6 @@
public static void main(String[] args) {
try {
soaker.execute();
- soaker.getConnectionPool().close();
} catch (Exception ex) {
ex.printStackTrace();
}
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java?rev=668357&r1=668356&r2=668357&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java Mon Jun 16 17:17:33 2008
@@ -235,6 +235,27 @@
}
/**
+ * Close object pool
+ */
+ protected void cleanUp() throws Exception {
+ if (genericObjectPool != null) {
+ genericObjectPool.close();
+ }
+ if (genericKeyedObjectPool != null) {
+ genericKeyedObjectPool.close();
+ }
+ if (stackObjectPool != null) {
+ stackObjectPool.close();
+ }
+ if (softReferenceObjectPool != null) {
+ softReferenceObjectPool.close();
+ }
+ if (stackKeyedObjectPool != null) {
+ stackKeyedObjectPool.close();
+ }
+ }
+
+ /**
* Create and return a PoolClientThread
*/
protected ClientThread makeClientThread(long iterations, long minDelay,