I just started using JMeter-2.3.3 and set up a simple test plan with a
postgres JDBC data source while reading the User Manual. A simple test
plan works with a Select Statement. When I use a Prepared Select
Statement instead, execution fails on the 2nd and subsequent queries with
"This statement has been closed".
Am I doing something obviously wrong or are Prepared Select Statements not
working with jmeter-2.3.3 and postgres-8.3.7?
I have read the Component Reference in the User Manual, and have googled
"jmeter prepared select postgresql" and "jmeter
org.postgresql.util.PSQLException: This statement has been closed." to no
avail.
I have boiled the test plan down to one integer and the template1
database, provided below.
Thanks for any assistance,
Ken
--
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test
Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">true</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables"
elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments"
testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"
testname="Thread Group" enabled="true">
<elementProp name="ThreadGroup.main_controller"
elementType="LoopController" guiclass="LoopControlPanel"
testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp
name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">2</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">2</stringProp>
<stringProp name="ThreadGroup.ramp_time">0</stringProp>
<longProp name="ThreadGroup.start_time">1243879156000</longProp>
<longProp name="ThreadGroup.end_time">1243879156000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp
name="ThreadGroup.on_sample_error">continue</stringProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource"
testname="pool1 cfg" enabled="true">
<boolProp name="autocommit">true</boolProp>
<stringProp name="checkQuery">Select 1</stringProp>
<stringProp name="connectionAge">5000</stringProp>
<stringProp name="dataSource">pgpool1</stringProp>
<stringProp
name="dbUrl">jdbc:postgresql://${dbhost}/${dbname}</stringProp>
<stringProp name="driver">org.postgresql.Driver</stringProp>
<boolProp name="keepAlive">true</boolProp>
<stringProp name="password"></stringProp>
<stringProp name="poolMax">4</stringProp>
<stringProp name="timeout">10000</stringProp>
<stringProp name="trimInterval">60000</stringProp>
<stringProp name="username">${dbuser}</stringProp>
</JDBCDataSource>
<hashTree/>
<JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler"
testname="JDBC Request" enabled="true">
<stringProp name="dataSource">pgpool1</stringProp>
<stringProp name="query">select ?</stringProp>
<stringProp name="queryArguments">1</stringProp>
<stringProp name="queryArgumentsTypes">INTEGER</stringProp>
<stringProp name="queryType">Prepared Select
Statement</stringProp>
<stringProp name="variableNames"></stringProp>
</JDBCSampler>
<hashTree/>
<ResultCollector guiclass="TableVisualizer"
testclass="ResultCollector" testname="View Results in Table"
enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
</value>
</objProp>
<stringProp name="filename">/tmp/take1.log</stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
<Arguments guiclass="ArgumentsPanel" testclass="Arguments"
testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="dbhost" elementType="Argument">
<stringProp name="Argument.name">dbhost</stringProp>
<stringProp name="Argument.value">localhost</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="dbname" elementType="Argument">
<stringProp name="Argument.name">dbname</stringProp>
<stringProp name="Argument.value">template1</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="dbuser" elementType="Argument">
<stringProp name="Argument.name">dbuser</stringProp>
<stringProp name="Argument.value">postgres</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</Arguments>
<hashTree/>
</hashTree>
</hashTree>
</jmeterTestPlan>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]