On 5 July 2016 at 21:15, Felix Schumacher <[email protected]> wrote: > Am 05.07.2016 um 22:00 schrieb sebb: >> >> If the user changes the validation query from non-empty to empty, I >> think the code could leave the original query untouched. >> >> I think it would be safer to do the following: >> >> String validationQuery = getCheckQuery(); >> if (!StringUtils.isBlank(validationQuery)) { >> dataSource.setValidationQuery(validationQuery); >> } else { >> dataSource.setValidationQuery(null); >> } > > Probably a good idea. Thanks for the hint. > > I have reversed the logic, to get rid of the negation in the if clause, but > the > result should be the same.
Agreed. > Regards, > Felix > >> >> >> >> On 5 July 2016 at 20:45, <[email protected]> wrote: >>> >>> Author: fschumacher >>> Date: Tue Jul 5 19:45:30 2016 >>> New Revision: 1751545 >>> >>> URL: http://svn.apache.org/viewvc?rev=1751545&view=rev >>> Log: >>> Use isValid() method from jdbc driver, if no validationQuery >>> is given in JDBC Connection Configuration. >>> >>> Bugzilla Id: 59803 >>> >>> Modified: >>> >>> jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java >>> jmeter/trunk/xdocs/changes.xml >>> jmeter/trunk/xdocs/usermanual/component_reference.xml >>> >>> Modified: >>> jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java >>> URL: >>> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java?rev=1751545&r1=1751544&r2=1751545&view=diff >>> >>> ============================================================================== >>> --- >>> jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java >>> (original) >>> +++ >>> jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java >>> Tue Jul 5 19:45:30 2016 >>> @@ -25,6 +25,7 @@ import java.util.Map; >>> import java.util.Set; >>> >>> import org.apache.commons.dbcp2.BasicDataSource; >>> +import org.apache.commons.lang3.StringUtils; >>> import org.apache.jmeter.config.ConfigElement; >>> import org.apache.jmeter.testbeans.TestBean; >>> import org.apache.jmeter.testbeans.TestBeanHelper; >>> @@ -209,7 +210,10 @@ public class DataSourceElement extends A >>> >>> if(isKeepAlive()) { >>> dataSource.setTestWhileIdle(true); >>> - dataSource.setValidationQuery(getCheckQuery()); >>> + String validationQuery = getCheckQuery(); >>> + if (!StringUtils.isBlank(validationQuery)) { >>> + dataSource.setValidationQuery(validationQuery); >>> + } >>> >>> dataSource.setSoftMinEvictableIdleTimeMillis(Long.parseLong(getConnectionAge())); >>> >>> dataSource.setTimeBetweenEvictionRunsMillis(Integer.parseInt(getTrimInterval())); >>> } >>> >>> Modified: jmeter/trunk/xdocs/changes.xml >>> URL: >>> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1751545&r1=1751544&r2=1751545&view=diff >>> >>> ============================================================================== >>> --- jmeter/trunk/xdocs/changes.xml (original) >>> +++ jmeter/trunk/xdocs/changes.xml Tue Jul 5 19:45:30 2016 >>> @@ -110,6 +110,8 @@ Summary >>> >>> <h3>General</h3> >>> <ul> >>> + <li><bug>59803</bug>Use <code>isValid()</code> method from jdbc >>> driver, if no validationQuery >>> + is given in JDBC Connection Configuration.</li> >>> </ul> >>> >>> <ch_section>Non-functional changes</ch_section> >>> >>> Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml >>> URL: >>> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1751545&r1=1751544&r2=1751545&view=diff >>> >>> ============================================================================== >>> --- jmeter/trunk/xdocs/usermanual/component_reference.xml (original) >>> +++ jmeter/trunk/xdocs/usermanual/component_reference.xml Tue Jul 5 >>> 19:45:30 2016 >>> @@ -4061,10 +4061,10 @@ instead. (see figures 12 and 13).</p> >>> See <a >>> href="https://commons.apache.org/proper/commons-dbcp/api-2.1.1/org/apache/commons/dbcp2/BasicDataSource.html#getSoftMinEvictableIdleTimeMillis--">BasicDataSource.html#getSoftMinEvictableIdleTimeMillis</a>. >>> Defaults to 5000 (5 seconds) >>> </property> >>> - <property name="Validation Query" required="Yes">A simple query >>> used to determine if the database is still responding. >>> - This defaults to 'SELECT 1' which is suitable for many >>> databases. >>> - However some may require a different query; for example Oracle >>> requires something like 'SELECT 1 FROM DUAL'. >>> - Note this validation query is used on pool creation to validate >>> it even if "Test While Idle" suggests query would only be used on idle >>> connections. >>> + <property name="Validation Query" required="No">A simple query >>> used to determine if the database is still responding. >>> + This defaults to the '<code>isValid()</code>' method of the jdbc >>> driver, which is suitable for many databases. >>> + However some may require a different query; for example Oracle >>> something like '<code>SELECT 1 FROM DUAL</code>' could be used. >>> + Note this validation query is used on pool creation to validate >>> it even if "<code>Test While Idle</code>" suggests query would only be used >>> on idle connections. >>> This is DBCP behaviour. >>> </property> >>> <property name="Database URL" required="Yes">JDBC Connection >>> string for the database.</property> >>> >>> >
