You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/10/01 20:36:46 UTC

svn commit: r581032 - in /jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc: config/DataSourceElement.java sampler/JDBCSampler.java

Author: sebb
Date: Mon Oct  1 11:36:38 2007
New Revision: 581032

URL: http://svn.apache.org/viewvc?rev=581032&view=rev
Log:
Create getConnection() method in DataSourceElement; use it in JDBCSampler
This is to make future changes easier.

Modified:
    jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
    jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java

Modified: jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java?rev=581032&r1=581031&r2=581032&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java Mon Oct  1 11:36:38 2007
@@ -17,7 +17,10 @@
 package org.apache.jmeter.protocol.jdbc.config;
 
 import java.io.ObjectStreamException;
+import java.sql.Connection;
+import java.sql.SQLException;
 
+import org.apache.avalon.excalibur.datasource.DataSourceComponent;
 import org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource;
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
 import org.apache.avalon.framework.logger.LogKitLogger;
@@ -27,6 +30,7 @@
 import org.apache.jmeter.testbeans.TestBeanHelper;
 import org.apache.jmeter.testelement.AbstractTestElement;
 import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.threads.JMeterContextService;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
@@ -110,6 +114,20 @@
 		getThreadContext().getVariables().putObject(getDataSource(), excaliburSource);
 	}
 
+	/*
+	 * Utility routine to get the connection from the pool.
+	 * Purpose:
+	 * - allows JDBCSampler to be entirely independent of the pooling classes
+	 * - allows the pool storage mechanism to be changed if necessary
+	 */
+	public static Connection getConnection(String poolName) throws SQLException{
+		DataSourceComponent pool = (DataSourceComponent) 
+		    JMeterContextService.getContext().getVariables().getObject(poolName);
+		if (pool == null) {
+			throw new SQLException("No pool found named: '" + poolName + "'");
+		}
+		return pool.getConnection();
+	}
 	/*
 	 * (non-Javadoc)
 	 * 

Modified: jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java?rev=581032&r1=581031&r2=581032&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java Mon Oct  1 11:36:38 2007
@@ -32,7 +32,7 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.avalon.excalibur.datasource.DataSourceComponent;
+import org.apache.jmeter.protocol.jdbc.config.DataSourceElement;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
 import org.apache.jmeter.samplers.SampleResult;
@@ -138,19 +138,13 @@
 
 
 		res.sampleStart();
-		DataSourceComponent pool = (DataSourceComponent) getThreadContext().getVariables().getObject(getDataSource());
-		log.debug("DataSourceComponent: " + pool);
 		Connection conn = null;
 		Statement stmt = null;
 
 		try {
 
-			if (pool == null)
-				throw new SQLException("No pool created");
-
-			// TODO: Consider creating a sub-result with the time to get the
-			// connection.
-			conn = pool.getConnection();
+			// TODO: Consider creating a sub-result with the time to get the connection.
+			conn = DataSourceElement.getConnection(getDataSource());
 
             // Based on query return value, get results
             String _queryType = getQueryType();



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org