Return-Path: Delivered-To: apmail-jakarta-jmeter-dev-archive@www.apache.org Received: (qmail 17458 invoked from network); 1 Oct 2007 18:37:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Oct 2007 18:37:38 -0000 Received: (qmail 4624 invoked by uid 500); 1 Oct 2007 18:37:28 -0000 Delivered-To: apmail-jakarta-jmeter-dev-archive@jakarta.apache.org Received: (qmail 4453 invoked by uid 500); 1 Oct 2007 18:37:27 -0000 Mailing-List: contact jmeter-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "JMeter Developers List" Reply-To: "JMeter Developers List" Delivered-To: mailing list jmeter-dev@jakarta.apache.org Received: (qmail 4442 invoked by uid 500); 1 Oct 2007 18:37:27 -0000 Received: (qmail 4439 invoked by uid 99); 1 Oct 2007 18:37:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2007 11:37:27 -0700 X-ASF-Spam-Status: No, hits=-98.8 required=10.0 tests=ALL_TRUSTED,DNS_FROM_DOB,RCVD_IN_DOB X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2007 18:37:37 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1195E1A9832; Mon, 1 Oct 2007 11:36:47 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r581032 - in /jakarta/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc: config/DataSourceElement.java sampler/JDBCSampler.java Date: Mon, 01 Oct 2007 18:36:46 -0000 To: jmeter-cvs@jakarta.apache.org From: sebb@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071001183647.1195E1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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