jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: svn commit: r1807103 - in /jmeter/trunk: bin/jmeter.properties src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElementBeanInfo.java xdocs/changes.xml xdocs/usermanual/component_reference.xml
Date Sun, 03 Sep 2017 15:39:20 GMT
Thanks for the code.
I agree with Felix remark that validation should be empty by default.

Regards

On Sun, Sep 3, 2017 at 12:45 PM, Felix Schumacher <
felix.schumacher@internetallee.de> wrote:

> Am 03.09.2017 um 00:15 schrieb agomes@apache.org:
>
>> Author: agomes
>> Date: Sat Sep  2 22:15:28 2017
>> New Revision: 1807103
>>
>> URL: http://svn.apache.org/viewvc?rev=1807103&view=rev
>> Log:
>> Add a list for "JDBC Connection Configuration" "Validation Query"
>> attribut. Screenshot later after I modified another attribute
>>
> I am not quite happy with this change. It is great to have a list of
> possible validation statements for different databases, but as modern jdbc
> drivers should provide an isValid method, the default value for the
> validation query should be empty.
>
> More notes below.
>
> Modified:
>>      jmeter/trunk/bin/jmeter.properties
>>      jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/
>> jdbc/config/DataSourceElementBeanInfo.java
>>      jmeter/trunk/xdocs/changes.xml
>>      jmeter/trunk/xdocs/usermanual/component_reference.xml
>>
>> Modified: jmeter/trunk/bin/jmeter.properties
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.propert
>> ies?rev=1807103&r1=1807102&r2=1807103&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/bin/jmeter.properties (original)
>> +++ jmeter/trunk/bin/jmeter.properties Sat Sep  2 22:15:28 2017
>> @@ -714,6 +714,10 @@ wmlParser.types=text/vnd.wap.wml
>>   # Max size of BLOBs and CLOBs to store in JDBC sampler. Result will be
>> cut off
>>   #jdbcsampler.max_retain_result_size=65536
>>   +# Database validation query
>> +# based in https://stackoverflow.com/questions/10684244/dbcp-validation
>> query-for-different-databases list
>> +jdbc.config.check.query=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS|select
>> 1 from dual|select 1 from sysibm.sysdummy1|select 1|select 1 from
>> rdb$database
>> +
>>   #-----------------------------------------------------------
>> ----------------
>>   # OS Process Sampler configuration
>>   #-----------------------------------------------------------
>> ----------------
>>
>> Modified: jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/
>> jdbc/config/DataSourceElementBeanInfo.java
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jdbc/
>> org/apache/jmeter/protocol/jdbc/config/DataSourceElementB
>> eanInfo.java?rev=1807103&r1=1807102&r2=1807103&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/
>> jdbc/config/DataSourceElementBeanInfo.java (original)
>> +++ jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/
>> jdbc/config/DataSourceElementBeanInfo.java Sat Sep  2 22:15:28 2017
>> @@ -30,6 +30,8 @@ import java.util.Set;
>>   import org.apache.commons.lang3.StringUtils;
>>   import org.apache.jmeter.testbeans.BeanInfoSupport;
>>   import org.apache.jmeter.testbeans.gui.TypeEditor;
>> +import org.apache.jmeter.util.JMeterUtils;
>> +import org.apache.jorphan.util.JOrphanUtils;
>>   import org.slf4j.Logger;
>>   import org.slf4j.LoggerFactory;
>>   @@ -86,9 +88,11 @@ public class DataSourceElementBeanInfo e
>>           p = property("connectionAge");
>>           p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>>           p.setValue(DEFAULT, "5000");
>> -        p = property("checkQuery");
>> +        p = property("checkQuery", TypeEditor.ComboStringEditor);
>>           p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>>           p.setValue(DEFAULT, "Select 1");
>> +        String[] CHECK_QUERY = getCheckQuery();
>> +        p.setValue(TAGS, CHECK_QUERY);
>>
> Don't name a local variable all upper case, as it would indicate a
> constant. This variable seems not to be used anywhere else and is
> initialized with a self describing method call, so I think it should be
> inlined.
>
>           p = property("dbUrl");
>>           p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>>           p.setValue(DEFAULT, "");
>> @@ -132,4 +136,13 @@ public class DataSourceElementBeanInfo e
>>           }
>>           return -1;
>>       }
>> +
>> +    /**
>> +     * Get the check queris for the main databases
>> +     * Based in https://stackoverflow.com/ques
>> tions/10684244/dbcp-validationquery-for-different-databases
>> +     * @return a String[] with the list of check queries
>> +     */
>> +    private String[] getCheckQuery() {
>> +        return JOrphanUtils.split(JMeterUtils
>> .getPropDefault("jdbc.config.check.query", ""), "|"); //$NON-NLS-1$
>> +    }
>>   }
>>
>> Modified: jmeter/trunk/xdocs/changes.xml
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?
>> rev=1807103&r1=1807102&r2=1807103&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
>> +++ jmeter/trunk/xdocs/changes.xml [utf-8] Sat Sep  2 22:15:28 2017
>> @@ -103,6 +103,7 @@ Incorporated feed back about unclear doc
>>   <ul>
>>       <li><bug>61320</bug>Test Action : Set duration to <code>0</code>
by
>> default</li>
>>       <li>JDBC Connection Configuration : Set Max Number of Connections
>> to <code>0</code> by default</li>
>> +    <li>JDBC Connection Configuration : Add a list for main databases
>> validation queries for "Validation Query" attribute</li>
>>   </ul>
>>     <h3>Controllers</h3>
>>
>> Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/c
>> omponent_reference.xml?rev=1807103&r1=1807102&r2=1807103&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
>> +++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sat Sep  2
>> 22:15:28 2017
>> @@ -4028,6 +4028,20 @@ instead. (see figures 12 and 13).</p>
>>           <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.
>> +        <p>The list of the validation queries can be configured with
>> <code>jdbc.config.check.query</code> property and are by default:</p>
>> +            <ul>
>> +              <li>hsqldb - select 1 from INFORMATION_SCHEMA.SYSTEM_USER
>> S</li>
>>
> This markup should be a definition list <dl><dt>hsqldb</dt><dd>select
> ...</dd>...</dl>
>
>> +              <li>Oracle - select 1 from dual</li>
>> +              <li>DB2 - select 1 from sysibm.sysdummy1</li>
>> +              <li>mysql - select 1</li>
>> +              <li>microsoft SQL Server - select 1</li>
>> +              <li>postgresql - select 1</li>
>> +              <li>ingres - select 1</li>
>> +              <li>derby - values 1</li>
>> +              <li>H2 - select 1</li>
>> +              <li>Firebird - select 1 from rdb$database</li>
>> +            </ul>
>> +        <note>The list come from <a href="https://stackoverflow.co
>> m/questions/10684244/dbcp-validationquery-for-different-databases">
>> https://stackoverflow.com/questions/10684244/dbcp-
>> validationquery-for-different-databases</a> and it can be
>> incorrect</note>
>>
> The text of the link could probably be changed to a descriptive type like
> "stackoverflow entry on different database validation queries".
>
> Regards,
>  Felix
>
>           <note>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.</note>
>>           </property>
>>
>>
>>
>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message