mstover1 2005/04/15 12:55:37
Modified: src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler
JDBCSamplerBeanInfo.java
JDBCSamplerResources.properties JDBCSampler.java
Log:
Adding option in JDBC sampler to specify whether the SQL represents a query
or an update, since it makes a difference to how JMeter executes it and how/if
it grabs the result set.
Revision Changes Path
1.3 +5 -1
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java
Index: JDBCSamplerBeanInfo.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JDBCSamplerBeanInfo.java 21 May 2004 16:58:26 -0000 1.2
+++ JDBCSamplerBeanInfo.java 15 Apr 2005 19:55:37 -0000 1.3
@@ -27,7 +27,7 @@
{
super(JDBCSampler.class);
- createPropertyGroup("varName", new String[]{"dataSource"});
+ createPropertyGroup("varName", new String[]{"dataSource","queryOnly"});
createPropertyGroup("sql", new String[]{"query"});
@@ -35,6 +35,10 @@
p.setValue(NOT_UNDEFINED, Boolean.TRUE);
p.setValue(DEFAULT, "");
+ p = property("queryOnly");
+ p.setValue(NOT_UNDEFINED,Boolean.TRUE);
+ p.setValue(DEFAULT,new Boolean(true));
+
p = property("query");
p.setValue(NOT_UNDEFINED, Boolean.TRUE);
p.setValue(DEFAULT, "");
1.3 +2 -0
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties
Index: JDBCSamplerResources.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JDBCSamplerResources.properties 28 May 2004 21:09:14 -0000 1.2
+++ JDBCSamplerResources.properties 15 Apr 2005 19:55:37 -0000 1.3
@@ -3,5 +3,7 @@
sql.displayName=SQL Query
query.displayName=Query
query.shortDescription=SQL Query to send to database
+queryOnly.displayName=Query Only
+queryOnly.shortDescription=If true, will run as a query and not as an
update/insert. Otherwise, run as update.
dataSource.displayName=Variable Name
dataSource.shortDescription=Name of the JMeter variable that the connection
pool is bound to.
\ No newline at end of file
1.32 +20 -4
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
Index: JDBCSampler.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- JDBCSampler.java 4 Jan 2005 19:32:10 -0000 1.31
+++ JDBCSampler.java 15 Apr 2005 19:55:37 -0000 1.32
@@ -48,6 +48,7 @@
public String query = "";
public String dataSource = "";
+ public boolean queryOnly = true;
/**
* Creates a JDBCSampler.
@@ -79,12 +80,12 @@
stmt = conn.createStatement();
// Based on query return value, get results
- if (stmt.execute(getQuery()))
+ if (isQueryOnly())
{
ResultSet rs = null;
try
{
- rs = stmt.getResultSet();
+ rs = stmt.executeQuery(getQuery());
Data data = getDataFromResultSet(rs);
res.setResponseData(data.toString().getBytes());
}
@@ -105,6 +106,7 @@
}
else
{
+ stmt.execute(getQuery());
int updateCount = stmt.getUpdateCount();
String results = updateCount + " updates";
res.setResponseData(results.getBytes());
@@ -221,4 +223,18 @@
{
this.dataSource = dataSource;
}
+
+/**
+ * @return Returns the queryOnly.
+ */
+public boolean isQueryOnly() {
+ return queryOnly;
+}
+
+/**
+ * @param queryOnly The queryOnly to set.
+ */
+public void setQueryOnly(boolean queryOnly) {
+ this.queryOnly = queryOnly;
+}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]