Re: JDBC test script error" The result of 'TestRunner()' is not callable"
Gang Yan <[email protected]> Wed, 14 Oct 2015 06:24:06 -0700 (PDT)
| Newsgroups | gmane.comp.java.grinder.user |
|---|---|
| Message-ID | <7e2274da-0b31-4f1e-b6de-f241cafdff68@default> |
--===============0689534502821676248==
Content-Type: multipart/alternative;
boundary="__1444829048689157664abhmp0002.oracle.com"
--__1444829048689157664abhmp0002.oracle.com
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Thank you reply:
=C2=A0
I modify test script and run normal. But test result TPS =C2=A0only 1.32. (=
run 200 threads). Test log not error .
=C2=A0
=C2=A0
Test script:
=C2=A0
# The sorting tes=C2=A0 supports a configurable array length.
# It runs the JavaTest.sort method of the JavaTest class.
=C2=A0
from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
from datetime import datetime
from datetime import timedelta
from java.sql import DriverManager
from oracle.jdbc import OracleDriver
=C2=A0
########################################
#
# main body of test script starts here
#
########################################
=C2=A0
# Get the propeties to access test configuration information
properties =3D grinder.getProperties()
=C2=A0
# The description is a property (instead of a hardcoded string in this scri=
pt)
#test =3D Test(1, properties.get("javatest.description"))
test =3D Test(2, properties.get("javatest.description"))
=C2=A0
# select the method for which to collect information
# test.record(WriteMulitpleLittleFile.write)
=C2=A0
# initialize data for compressing
# fileName =3D properties.get("javatest.fileToCompress")
# grinder.logger.info("data file to compress is " + fileName)
# JavaTest.initializeCompression(fileName)
=C2=A0
# If the run mode is runOnce, the TestRunner class will
# run once.=C2=A0 Otherwise, if the run mode is continuous,
# the TestRunner class will run the test for at least
# the specified duration (but possibly longer)
runMode =3D properties.get("javatest.runMode")
#WriteMulitpleLittleFile.setParameters(dir, fileSize...)
if runMode =3D=3D "continuous":
=C2=A0 # figure out how long to run the test
=C2=A0 m =3D int(properties.getProperty("javatest.durationMinutes", "0"))
=C2=A0 h =3D int(properties.getProperty("javatest.durationHours", "0"))
=C2=A0 d =3D int(properties.getProperty("javatest.durationDays", "0"))
=C2=A0 duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)
=C2=A0 grinder.logger.info("run mode is continuous, duration is " + str(dur=
ation))
elif runMode =3D=3D "runOnce":
=C2=A0 grinder.logger.info("run mode is run once")
=C2=A0 duration =3D timedelta(minutes=3D0)
else:
=C2=A0 grinder.logger.info("run mode not set or not recongized, default to =
run once")
=C2=A0 duration =3D timedelta(minutes=3D0)
=C2=A0
########################################
#
# The TestRunner class is used by The Grinder to perform the test
#
########################################
=C2=A0
#test1 =3D Test(1, "Database insert")
test2 =3D Test(2, "Database query")
=C2=A0
# Load the Oracle JDBC driver.
DriverManager.registerDriver(OracleDriver())
=C2=A0
def getConnection():
=C2=A0=C2=A0=C2=A0 return DriverManager.getConnection(
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "jdbc:oracle:thin:@unpgv4410.us.=
oracle.com:1521:orcl", "PBPUBLIC", "PBPUBLIC")
=C2=A0
def ensureClosed(object):
=C2=A0=C2=A0=C2=A0 try: object.close()
=C2=A0=C2=A0=C2=A0 except: pass
=C2=A0
# One time initialisation that cleans out old data.
connection =3D getConnection()
statement =3D connection.createStatement()
=C2=A0
ensureClosed(statement)
ensureClosed(connection)
=C2=A0
class TestRunner:
=C2=A0=C2=A0 def __call__(self):
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 endTime =3D datetime.now()=
+ duration
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D True
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 while notDone:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D da=
tetime.now() < endTime
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connection =3D None
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStatement =3D None
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 queryStatement =3D None
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connecti=
on =3D getConnection()
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement =3D connection.createStatement()
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStateme=
nt =3D connection.createStatement()
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test1.record(=
insertStatement)
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStateme=
nt.execute("insert into grinder_test values(%d, %d)" %
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (grinder.threadNu=
mber, grinder.runNumber))
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test2.re=
cord(queryStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement.execute("select * from employee")
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 finally:
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureClosed(=
insertStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(queryStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(connection)
=C2=A0
From: Marc Holden [mailto:[email protected]]=20
Sent: 2015=E5=B9=B410=E6=9C=8814=E6=97=A5 21:06
To: grinder-use
Subject: Re: [Grinder-use] JDBC test script error" The result of 'TestRunne=
r()' is not callable"
=C2=A0
Hi Gang,
=C2=A0
You need to uncomment out the __call__ method definition (line 189).=C2=A0 =
Grinder uses that method as the entry point for the worker processes.
=C2=A0
-Marc
=C2=A0
On Wed, Oct 14, 2015 at 6:57 AM Gang Yan <HYPERLINK "mailto:yan.gang@oracle=
.com"[email protected]> wrote:
Hi all :
=C2=A0
I use JDBC.py script run=C2=A0 performance testing . grinder log info:
=C2=A0
2015-10-14 18:42:40,132 ERROR com-0 thread-24: aborting thread - {}The resu=
lt of 'TestRunner()' is not callable
net.grinder.scriptengine.jython.JythonScriptExecutionException: The result =
of 'TestRunner()' is not callable
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.scriptengine.jyth=
on.JythonScriptEngine.createWorkerRunnable(JythonScriptEngine.java:183) ~[g=
rinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.engine.process.Gr=
inderProcess$ThreadStarterImplementation$2.create(GrinderProcess.java:784) =
~[grinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.engine.process.Gr=
inderThread.run(GrinderThread.java:90) ~[grinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at java.lang.Thread.run(Thread.j=
ava:744) [na:1.7.0_45]
2015-10-14 18:42:40,132 ERROR com-0 thread-3: aborting thread - {}The resul=
t of 'TestRunner()' is not callable
net.grinder.scriptengine.jython.JythonScriptExecutionException: The result =
of 'TestRunner()' is not callable
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.scriptengine.jyth=
on.JythonScriptEngine.createWorkerRunnable(JythonScriptEngine.java:183) ~[g=
rinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.engine.process.Gr=
inderProcess$ThreadStarterImplementation$2.create(GrinderProcess.java:784) =
~[grinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at net.grinder.engine.process.Gr=
inderThread.run(GrinderThread.java:90) ~[grinder-core-3.11.jar:na]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at java.lang.Thread.run(Thread.j=
ava:744) [na:1.7.0_45]
=C2=A0
I modify script, but still =C2=A0error. Please help check it.
=C2=A0
I =C2=A0test script :
=C2=A0
# The sorting tes=C2=A0 supports a configurable array length.
# It runs the JavaTest.sort method of the JavaTest class.
=C2=A0
from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
from datetime import datetime
from datetime import timedelta
from java.sql import DriverManager
from oracle.jdbc import OracleDriver
=C2=A0
########################################
#
# main body of test script starts here
#
########################################
=C2=A0
# Get the propeties to access test configuration information
properties =3D grinder.getProperties()
=C2=A0
# The description is a property (instead of a hardcoded string in this scri=
pt)
#test =3D Test(1, properties.get("javatest.description"))
test =3D Test(2, properties.get("javatest.description"))
=C2=A0
# select the method for which to collect information
# test.record(WriteMulitpleLittleFile.write)
=C2=A0
# initialize data for compressing
# fileName =3D properties.get("javatest.fileToCompress")
# HYPERLINK "http://grinder.logger.info" \ngrinder.logger.info("data file t=
o compress is " + fileName)
# JavaTest.initializeCompression(fileName)
=C2=A0
# If the run mode is runOnce, the TestRunner class will
# run once.=C2=A0 Otherwise, if the run mode is continuous,
# the TestRunner class will run the test for at least
# the specified duration (but possibly longer)
runMode =3D properties.get("javatest.runMode")
#WriteMulitpleLittleFile.setParameters(dir, fileSize...)
if runMode =3D=3D "continuous":
=C2=A0 # figure out how long to run the test
=C2=A0 m =3D int(properties.getProperty("javatest.durationMinutes", "0"))
=C2=A0 h =3D int(properties.getProperty("javatest.durationHours", "0"))
=C2=A0 d =3D int(properties.getProperty("javatest.durationDays", "0"))
=C2=A0 duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)
=C2=A0 HYPERLINK "http://grinder.logger.info" \ngrinder.logger.info("run mo=
de is continuous, duration is " + str(duration))
elif runMode =3D=3D "runOnce":
=C2=A0 HYPERLINK "http://grinder.logger.info" \ngrinder.logger.info("run mo=
de is run once")
=C2=A0 duration =3D timedelta(minutes=3D0)
else:
=C2=A0 HYPERLINK "http://grinder.logger.info" \ngrinder.logger.info("run mo=
de not set or not recongized, default to run once")
=C2=A0 duration =3D timedelta(minutes=3D0)
=C2=A0
########################################
#
# The TestRunner class is used by The Grinder to perform the test
#
########################################
=C2=A0
#test1 =3D Test(1, "Database insert")
test2 =3D Test(2, "Database query")
=C2=A0
# Load the Oracle JDBC driver.
DriverManager.registerDriver(OracleDriver())
=C2=A0
def getConnection():
=C2=A0=C2=A0=C2=A0 return DriverManager.getConnection(
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "jdbc:oracle:thin:@den00bvr.us.o=
racle.com:1521:orcl", "PBPUBLIC", "PBPUBLIC")
=C2=A0
def ensureClosed(object):
=C2=A0=C2=A0=C2=A0 try: object.close()
=C2=A0=C2=A0=C2=A0 except: pass
=C2=A0
# One time initialisation that cleans out old data.
connection =3D getConnection()
statement =3D connection.createStatement()
=C2=A0
#try: statement.execute("drop table grinder_test1126")
#except: pass
=C2=A0
#statement.execute("create table grinder_test1126(thread number, run number=
)")
=C2=A0
ensureClosed(statement)
ensureClosed(connection)
=C2=A0
class TestRunner:
=C2=A0=C2=A0 def __init__(self):
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tid =3D grinder.threadNumber
=C2=A0
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (grinder.threadNumber % 2 =
=3D=3D 0):
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 E=
ven threadNumber
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 D=
o insertStatement
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else:
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 O=
dd threadNumber
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 D=
o queryStatement
=C2=A0
#=C2=A0=C2=A0 def __call__(self):
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 self.testRunner()
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 endTime =3D datetime.now() + dur=
ation
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D True
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 while notDone:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connection =3D None
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStatement =3D None
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 queryStatement =3D None
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D datetime.now()=
< endTime
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connecti=
on =3D getConnection()
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStateme=
nt =3D connection.createStatement()
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement =3D connection.createStatement()
=C2=A0
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test1.record(=
insertStatement)
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStateme=
nt.execute("insert into grinder_test1126 values(%d, %d)" %
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (grinder.threadNu=
mber, grinder.runNumber))
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test2.re=
cord(queryStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement.execute("select * from employee")
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 finally:
#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureClosed(=
insertStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(queryStatement)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(connection)
=C2=A0
---------------------------------------------------------------------------=
---
_______________________________________________
grinder-use mailing list
HYPERLINK "mailto:[email protected]" \[email protected]=
urceforge.net
https://lists.sourceforge.net/lists/listinfo/grinder-use
--__1444829048689157664abhmp0002.oracle.com
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft=
Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
=09{font-family:=E5=AE=8B=E4=BD=93;
=09panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
=09{font-family:"Cambria Math";
=09panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
=09{font-family:"\@=E5=AE=8B=E4=BD=93";
=09panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:12.0pt;
=09font-family:=E5=AE=8B=E4=BD=93;}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
span.EmailStyle17
=09{mso-style-type:personal-reply;
=09font-family:"Calibri","sans-serif";
=09color:#1F497D;}
.MsoChpDefault
=09{mso-style-type:export-only;}
@page WordSection1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DZH-CN link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span lang=3DEN-=
US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F49=
7D'>Thank you reply:<o:p></o:p></span></p><p class=3DMsoNormal><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'><o:p> </o:p></span></p><p class=3DMsoNormal><span lang=3DEN-=
US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F49=
7D'>I modify test script and run normal. But test result TPS =C2=A0only 1.3=
2. (run 200 threads). Test log not error .<o:p></o:p></span></p><p class=3D=
MsoNormal><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri=
","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=3DMsoNor=
mal><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","san=
s-serif";color:#1F497D'><o:p> </o:p></span></p><p class=3DMsoNormal><s=
pan lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-seri=
f";color:#1F497D'>Test script:<o:p></o:p></span></p><p class=3DMsoNormal><s=
pan lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-seri=
f";color:#1F497D'><o:p> </o:p></span></p><p class=3DMsoNormal><b><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'># The sorting tes=C2=A0 supports a configurable array length=
.<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># It=
runs the JavaTest.sort method of the JavaTest class.<o:p></o:p></span></b>=
</p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;fo=
nt-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></b=
></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;f=
ont-family:"Calibri","sans-serif";color:#1F497D'>from net.grinder.script.Gr=
inder import grinder<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'>from net.grinder.script import Test<o:p></o:p></span></b></p=
><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-=
family:"Calibri","sans-serif";color:#1F497D'>from datetime import datetime<=
o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>from=
datetime import timedelta<o:p></o:p></span></b></p><p class=3DMsoNormal><b=
><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-s=
erif";color:#1F497D'>from java.sql import DriverManager<o:p></o:p></span></=
b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;=
font-family:"Calibri","sans-serif";color:#1F497D'>from oracle.jdbc import O=
racleDriver<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DE=
N-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F=
497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'>########################################<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'>#<o:p></o:p></span></b></p><p cla=
ss=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:=
"Calibri","sans-serif";color:#1F497D'># main body of test script starts her=
e<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#<o:=
p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>########=
################################<o:p></o:p></span></b></p><p class=3DMsoNor=
mal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'># Get the propeties to access test configuratio=
n information<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>properties =3D grinder.getProperties()<o:p></o:p></span></b></p><=
p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fa=
mily:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></b></p>=
<p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-f=
amily:"Calibri","sans-serif";color:#1F497D'># The description is a property=
(instead of a hardcoded string in this script)<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'>#test =3D Test(1, properties.get(=
"javatest.description"))<o:p></o:p></span></b></p><p class=3DMsoN=
ormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri"=
,"sans-serif";color:#1F497D'>test =3D Test(2, properties.get("javatest=
.description"))<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'># select the method for which to collect information<o:p></=
o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font=
-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># test.recor=
d(WriteMulitpleLittleFile.write)<o:p></o:p></span></b></p><p class=3DMsoNor=
mal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'># initialize data for compressing<o:p></o:p></s=
pan></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:1=
0.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># fileName =3D prop=
erties.get("javatest.fileToCompress")<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'># grinder.logger.info("data =
file to compress is " + fileName)<o:p></o:p></span></b></p><p class=3D=
MsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Cali=
bri","sans-serif";color:#1F497D'># JavaTest.initializeCompression(fileName)=
<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p=
> </o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US styl=
e=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># I=
f the run mode is runOnce, the TestRunner class will<o:p></o:p></span></b><=
/p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;fon=
t-family:"Calibri","sans-serif";color:#1F497D'># run once.=C2=A0 Otherwise,=
if the run mode is continuous,<o:p></o:p></span></b></p><p class=3DMsoNorm=
al><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'># the TestRunner class will run the test for at l=
east<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US st=
yle=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#=
the specified duration (but possibly longer)<o:p></o:p></span></b></p><p c=
lass=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-famil=
y:"Calibri","sans-serif";color:#1F497D'>runMode =3D properties.get("ja=
vatest.runMode")<o:p></o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>#WriteMulitpleLittleFile.setParameters(dir, fileSize...)<o:=
p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>if runMo=
de =3D=3D "continuous":<o:p></o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'>=C2=A0 # figure out how long to run the test<o:=
p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0 m=
=3D int(properties.getProperty("javatest.durationMinutes", "=
;0"))<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN=
-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F4=
97D'>=C2=A0 h =3D int(properties.getProperty("javatest.durationHours&q=
uot;, "0"))<o:p></o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>=C2=A0 d =3D int(properties.getProperty("javatest.dura=
tionDays", "0"))<o:p></o:p></span></b></p><p class=3DMsoNorm=
al><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'>=C2=A0 duration =3D timedelta(minutes=3Dm,hours=
=3Dh,days=3Dd)<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>=C2=A0 grinder.logger.info("run mode is continuous, duration=
is " + str(duration))<o:p></o:p></span></b></p><p class=3DMsoNormal><=
b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-=
serif";color:#1F497D'>elif runMode =3D=3D "runOnce":<o:p></o:p></=
span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:=
10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0 grinder.log=
ger.info("run mode is run once")<o:p></o:p></span></b></p><p clas=
s=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'>=C2=A0 duration =3D timedelta(minutes=
=3D0)<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US s=
tyle=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=
else:<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US s=
tyle=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=
=C2=A0 grinder.logger.info("run mode not set or not recongized, defaul=
t to run once")<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'>=C2=A0 duration =3D timedelta(minutes=3D0)<o:p></o:p></span>=
</b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5p=
t;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span=
></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5=
pt;font-family:"Calibri","sans-serif";color:#1F497D'>######################=
##################<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span l=
ang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";co=
lor:#1F497D'>#<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'># The TestRunner class is used by The Grinder to perform the test=
<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#<o:=
p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>########=
################################<o:p></o:p></span></b></p><p class=3DMsoNor=
mal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'>#test1 =3D Test(1, "Database insert")=
<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>test=
2 =3D Test(2, "Database query")<o:p></o:p></span></b></p><p class=
=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"C=
alibri","sans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p clas=
s=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'># Load the Oracle JDBC driver.<o:p></o=
:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-=
size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>DriverManager=
.registerDriver(OracleDriver())<o:p></o:p></span></b></p><p class=3DMsoNorm=
al><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNor=
mal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'>def getConnection():<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0 return DriverM=
anager.getConnection(<o:p></o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "jdbc:oracl=
e:thin:@unpgv4410.us.oracle.com:1521:orcl", "PBPUBLIC", &quo=
t;PBPUBLIC")<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span la=
ng=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";col=
or:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><span l=
ang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";co=
lor:#1F497D'>def ensureClosed(object):<o:p></o:p></span></b></p><p class=3D=
MsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Cali=
bri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0 try: object.close()<o:p=
></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=
=A0=C2=A0 except: pass<o:p></o:p></span></b></p><p class=3DMsoNormal><b><sp=
an lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif=
";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><s=
pan lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-seri=
f";color:#1F497D'># One time initialisation that cleans out old data.<o:p><=
/o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'fon=
t-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>connection =
=3D getConnection()<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span =
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";c=
olor:#1F497D'>statement =3D connection.createStatement()<o:p></o:p></span><=
/b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt=
;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span>=
</b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5p=
t;font-family:"Calibri","sans-serif";color:#1F497D'>ensureClosed(statement)=
<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>ensu=
reClosed(connection)<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>class TestRunner:<o:p></o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'>=C2=A0=C2=A0 def __call__(self):<o:p></o:p></sp=
an></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 endTime =3D datetime.now() + duration<o:p></=
o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font=
-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D True<o:p></o:p></span></b>=
</p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;fo=
nt-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 while notDone:<o:p></o:p></span></b></p><p class=3DMs=
oNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibr=
i","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 notDone =3D datetime.now() < endTime<o:p></o:p></span=
></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5=
pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></spa=
n></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.=
5pt;font-family:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 connection =3D None<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 insertStatement =3D None<o:p></o:p></span></b></p><p class=
=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"C=
alibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 queryStatement =3D None<o:p></o:p></span></b></p><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoN=
ormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri"=
,"sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 try:<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-U=
S style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 conne=
ction =3D getConnection()<o:p></o:p></span></b></p><p class=3DMsoNormal><b>=
<span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-se=
rif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 queryStatement =3D connection.createStatement()<o:p></o:p></sp=
an></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStatement =3D connection.c=
reateStatement()<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lan=
g=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";colo=
r:#1F497D'>#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 te=
st1.record(insertStatement)<o:p></o:p></span></b></p><p class=3DMsoNormal><=
b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-=
serif";color:#1F497D'>#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 insertStatement.execute("insert into grinder_test values(%d,=
%d)" %<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'>#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (grinder.th=
readNumber, grinder.runNumber))<o:p></o:p></span></b></p><p class=3DMsoNorm=
al><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNor=
mal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 test2.record(queryStatement)<o:p></o:p></span></b></p><p=
class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.5pt;font-fam=
ily:"Calibri","sans-serif";color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 queryStatement.execute("select * fro=
m employee")<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span la=
ng=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";col=
or:#1F497D'><o:p> </o:p></span></b></p><p class=3DMsoNormal><b><span l=
ang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";co=
lor:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 finally:<o:p>=
</o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US style=3D'fo=
nt-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureClosed(insertStat=
ement)<o:p></o:p></span></b></p><p class=3DMsoNormal><b><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureC=
losed(queryStatement)<o:p></o:p></span></b></p><p class=3DMsoNormal><b><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 ensureClosed(connection)<o:p></o:p></span></b></p><p class=3DMsoN=
ormal><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'><o:p> </o:p></span></p><div style=3D'border:=
none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=3DM=
soNormal><b><span lang=3DEN-US style=3D'font-size:10.0pt;font-family:"Tahom=
a","sans-serif"'>From:</span></b><span lang=3DEN-US style=3D'font-size:10.0=
pt;font-family:"Tahoma","sans-serif"'> Marc Holden [mailto:mholden123@gmail=
.com] <br><b>Sent:</b> 2015</span><span style=3D'font-size:10.0pt'>=E5=B9=
=B4</span><span lang=3DEN-US style=3D'font-size:10.0pt;font-family:"Tahoma"=
,"sans-serif"'>10</span><span style=3D'font-size:10.0pt'>=E6=9C=88</span><s=
pan lang=3DEN-US style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif=
"'>14</span><span style=3D'font-size:10.0pt'>=E6=97=A5</span><span lang=3DE=
N-US style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> 21:06<br=
><b>To:</b> grinder-use<br><b>Subject:</b> Re: [Grinder-use] JDBC test scri=
pt error" The result of 'TestRunner()' is not callable"<o:p></o:p=
></span></p></div><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p>=
</span></p><div><p class=3DMsoNormal><span lang=3DEN-US>Hi Gang,<o:p></o:p>=
</span></p><div><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></=
span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US>You need to unc=
omment out the __call__ method definition (line 189). Grinder uses th=
at method as the entry point for the worker processes.<o:p></o:p></span></p=
></div><div><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span=
></p></div><div><p class=3DMsoNormal><span lang=3DEN-US>-Marc<o:p></o:p></s=
pan></p></div></div><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:=
p></span></p><div><div><p class=3DMsoNormal><span lang=3DEN-US>On Wed, Oct =
14, 2015 at 6:57 AM Gang Yan <<a href=3D"mailto:[email protected]">yan=
[email protected]</a>> wrote:<o:p></o:p></span></p></div><blockquote styl=
e=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;=
margin-left:4.8pt;margin-right:0cm'><div><div><div><div><p class=3DMsoNorma=
l style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>Hi all :</span><span lang=3DEN-US><o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-ser=
if";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></span></p><p=
class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:a=
uto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sa=
ns-serif";color:#1F497D'>I use JDBC.py script run performance testing=
. grinder log info:</span><span lang=3DEN-US><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>=
<span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-se=
rif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></span></p><=
p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:=
auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'>2015-10-14 18:42:40,132 ERROR com-0 thread-24: ab=
orting thread - {}The result of 'TestRunner()' is not callable</span><span =
lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin=
-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-=
size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>net.grinder.s=
criptengine.jython.JythonScriptExecutionException: The result of 'TestRunne=
r()' is not callable</span><span lang=3DEN-US><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>=
<span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-se=
rif";color:#1F497D'> at net.grind=
er.scriptengine.jython.JythonScriptEngine.createWorkerRunnable(JythonScript=
Engine.java:183) ~[grinder-core-3.11.jar:na]</span><span lang=3DEN-US><o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-=
margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-f=
amily:"Calibri","sans-serif";color:#1F497D'> &=
nbsp; at net.grinder.engine.process.GrinderProcess$ThreadStarterImple=
mentation$2.create(GrinderProcess.java:784) ~[grinder-core-3.11.jar:na]</sp=
an><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'm=
so-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbs=
p; at net.grinder.engine.process.Grinde=
rThread.run(GrinderThread.java:90) ~[grinder-core-3.11.jar:na]</span><span =
lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin=
-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-=
size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> &=
nbsp; at java.lang.Thread.run(Thread.java:744) [na:=
1.7.0_45]</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNorm=
al style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>2015-10-14 18:42:40,132 ERROR com-0 thread-3: aborting thread - {=
}The result of 'TestRunner()' is not callable</span><span lang=3DEN-US><o:p=
></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso=
-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-=
family:"Calibri","sans-serif";color:#1F497D'>net.grinder.scriptengine.jytho=
n.JythonScriptExecutionException: The result of 'TestRunner()' is not calla=
ble</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal sty=
le=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-U=
S style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'> at net.grinder.scriptengine.j=
ython.JythonScriptEngine.createWorkerRunnable(JythonScriptEngine.java:183) =
~[grinder-core-3.11.jar:na]</span><span lang=3DEN-US><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'> at ne=
t.grinder.engine.process.GrinderProcess$ThreadStarterImplementation$2.creat=
e(GrinderProcess.java:784) ~[grinder-core-3.11.jar:na]</span><span lang=3DE=
N-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt=
:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.=
5pt;font-family:"Calibri","sans-serif";color:#1F497D'> &nb=
sp; at net.grinder.engine.process.GrinderThread.run(Grind=
erThread.java:90) ~[grinder-core-3.11.jar:na]</span><span lang=3DEN-US><o:p=
></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso=
-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-=
family:"Calibri","sans-serif";color:#1F497D'> =
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]</span><=
span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </=
span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US sty=
le=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>I =
modify script, but still error. Please help check it.</span><span lan=
g=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-to=
p-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-siz=
e:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><sp=
an lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-mar=
gin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fo=
nt-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>I te=
st script :</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNo=
rmal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lan=
g=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";colo=
r:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-ser=
if";color:#1F497D'># The sorting tes supports a configurable array le=
ngth.</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal s=
tyle=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN=
-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F4=
97D'># It runs the JavaTest.sort method of the JavaTest class.</span><span =
lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin=
-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-=
size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span>=
<span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-=
margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D=
'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>from ne=
t.grinder.script.Grinder import grinder</span><span lang=3DEN-US><o:p></o:p=
></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margi=
n-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family=
:"Calibri","sans-serif";color:#1F497D'>from net.grinder.script import Test<=
/span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
>from datetime import datetime</span><span lang=3DEN-US><o:p></o:p></span><=
/p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-=
alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri=
","sans-serif";color:#1F497D'>from datetime import timedelta</span><span la=
ng=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-t=
op-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-si=
ze:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>from java.sql i=
mport DriverManager</span><span lang=3DEN-US><o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-ser=
if";color:#1F497D'>from oracle.jdbc import OracleDriver</span><span lang=3D=
EN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-al=
t:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>##############=
##########################</span><span lang=3DEN-US><o:p></o:p></span></p><=
p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:=
auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","s=
ans-serif";color:#1F497D'>#</span><span lang=3DEN-US><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'># main body of test script starts here</span><sp=
an lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-mar=
gin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fo=
nt-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#</span><s=
pan lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-ma=
rgin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#########=
###############################</span><span lang=3DEN-US><o:p></o:p></span>=
</p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom=
-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibr=
i","sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-=
bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'># Get the propeties to access test con=
figuration information</span><span lang=3DEN-US><o:p></o:p></span></p><p cl=
ass=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto=
'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-=
serif";color:#1F497D'>properties =3D grinder.getProperties()</span><span la=
ng=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-t=
op-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-si=
ze:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><s=
pan lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-ma=
rgin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># The des=
cription is a property (instead of a hardcoded string in this script)</span=
><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso=
-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#tes=
t =3D Test(1, properties.get("javatest.description"))</span><span=
lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margi=
n-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font=
-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>test =3D Tes=
t(2, properties.get("javatest.description"))</span><span lang=3DE=
N-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt=
:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.=
5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><span la=
ng=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-t=
op-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-si=
ze:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># select the me=
thod for which to collect information</span><span lang=3DEN-US><o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-=
bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'># test.record(WriteMulitpleLittleFile.=
write)</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DE=
N-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F=
497D'> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoN=
ormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span la=
ng=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";col=
or:#1F497D'># initialize data for compressing</span><span lang=3DEN-US><o:p=
></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso=
-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-=
family:"Calibri","sans-serif";color:#1F497D'># fileName =3D properties.get(=
"javatest.fileToCompress")</span><span lang=3DEN-US><o:p></o:p></=
span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-b=
ottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"C=
alibri","sans-serif";color:#1F497D'># <a href=3D"http://grinder.logger.info=
" target=3D"_blank">grinder.logger.info</a>("data file to compress is =
" + fileName)</span><span lang=3DEN-US><o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-ser=
if";color:#1F497D'># JavaTest.initializeCompression(fileName)</span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><=
span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># If the=
run mode is runOnce, the TestRunner class will</span><span lang=3DEN-US><o=
:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;m=
so-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;fon=
t-family:"Calibri","sans-serif";color:#1F497D'># run once. Otherwise,=
if the run mode is continuous,</span><span lang=3DEN-US><o:p></o:p></span>=
</p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom=
-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibr=
i","sans-serif";color:#1F497D'># the TestRunner class will run the test for=
at least</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNorm=
al style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'># the specified duration (but possibly longer)</span><span lang=
=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size=
:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>runMode =3D prope=
rties.get("javatest.runMode")</span><span lang=3DEN-US><o:p></o:p=
></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margi=
n-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family=
:"Calibri","sans-serif";color:#1F497D'>#WriteMulitpleLittleFile.setParamete=
rs(dir, fileSize...)</span><span lang=3DEN-US><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>=
<span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-se=
rif";color:#1F497D'>if runMode =3D=3D "continuous":</span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> # figur=
e out how long to run the test</span><span lang=3DEN-US><o:p></o:p></span><=
/p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-=
alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri=
","sans-serif";color:#1F497D'> m =3D int(properties.getProperty("=
;javatest.durationMinutes", "0"))</span><span lang=3DEN-US><=
o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;=
mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;fo=
nt-family:"Calibri","sans-serif";color:#1F497D'> h =3D int(properties=
.getProperty("javatest.durationHours", "0"))</span><spa=
n lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-marg=
in-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fon=
t-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> d =
=3D int(properties.getProperty("javatest.durationDays", "0&q=
uot;))</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DE=
N-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F=
497D'> duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)</span><=
span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> <=
a href=3D"http://grinder.logger.info" target=3D"_blank">grinder.logger.info=
</a>("run mode is continuous, duration is " + str(duration))</spa=
n><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'ms=
o-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>elif=
runMode =3D=3D "runOnce":</span><span lang=3DEN-US><o:p></o:p></=
span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-b=
ottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"C=
alibri","sans-serif";color:#1F497D'> <a href=3D"http://grinder.logger=
.info" target=3D"_blank">grinder.logger.info</a>("run mode is run once=
")</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal=
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'> duration =3D timedelta(minutes=3D0)</span><span lang=3DEN-US>=
<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto=
;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;f=
ont-family:"Calibri","sans-serif";color:#1F497D'>else:</span><span lang=3DE=
N-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt=
:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.=
5pt;font-family:"Calibri","sans-serif";color:#1F497D'> <a href=3D"htt=
p://grinder.logger.info" target=3D"_blank">grinder.logger.info</a>("ru=
n mode not set or not recongized, default to run once")</span><span la=
ng=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-t=
op-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-si=
ze:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> duration=
=3D timedelta(minutes=3D0)</span><span lang=3DEN-US><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></spa=
n></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bott=
om-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Cali=
bri","sans-serif";color:#1F497D'>########################################</=
span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US sty=
le=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#<=
/span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
># The TestRunner class is used by The Grinder to perform the test</span><s=
pan lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-ma=
rgin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#</span><=
span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'=
font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>########=
################################</span><span lang=3DEN-US><o:p></o:p></span=
></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-botto=
m-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calib=
ri","sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p>=
</span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin=
-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:=
"Calibri","sans-serif";color:#1F497D'>#test1 =3D Test(1, "Database ins=
ert")</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNor=
mal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>test2 =3D Test(2, "Database query")</span><span lang=3D=
EN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-al=
t:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># Load the Ora=
cle JDBC driver.</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3D=
MsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>DriverManager.registerDriver(OracleDriver())</span><span la=
ng=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-t=
op-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-si=
ze:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><s=
pan lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-ma=
rgin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>def getCo=
nnection():</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNo=
rmal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lan=
g=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";colo=
r:#1F497D'> return DriverManager.getConnection(</span><sp=
an lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-mar=
gin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fo=
nt-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> &nbs=
p; "jdbc:oracle:thin:@den00bvr.us.oracle=
.com:1521:orcl", "PBPUBLIC", "PBPUBLIC")</span><sp=
an lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-mar=
gin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fo=
nt-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </sp=
an><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'm=
so-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>def =
ensureClosed(object):</span><span lang=3DEN-US><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'=
><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-s=
erif";color:#1F497D'> try: object.close()</span><span lan=
g=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-to=
p-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-siz=
e:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> &nbs=
p; except: pass</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DM=
soNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span=
lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";=
color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'=
><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-s=
erif";color:#1F497D'># One time initialisation that cleans out old data.</s=
pan><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'=
mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US styl=
e=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>con=
nection =3D getConnection()</span><span lang=3DEN-US><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'>statement =3D connection.createStatement()</span=
><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso=
-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbs=
p;</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal styl=
e=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US=
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D=
'>#try: statement.execute("drop table grinder_test1126")</span><s=
pan lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-ma=
rgin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'f=
ont-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#except: =
pass</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal st=
yle=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-=
US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F49=
7D'> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNor=
mal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'>#statement.execute("create table grinder_test1126(thread num=
ber, run number)")</span><span lang=3DEN-US><o:p></o:p></span></p><p c=
lass=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:aut=
o'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans=
-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o:p></span></=
p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri"=
,"sans-serif";color:#1F497D'>ensureClosed(statement)</span><span lang=3DEN-=
US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:a=
uto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5p=
t;font-family:"Calibri","sans-serif";color:#1F497D'>ensureClosed(connection=
)</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal=
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'>class TestRunner:</span><span lang=3DEN-US><o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:au=
to'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","san=
s-serif";color:#1F497D'> def __init__(self):</span><span lang=
=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size=
:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># &nbs=
p; tid =3D grinder.threadNumber</span><span lang=3D=
EN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-al=
t:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># &=
nbsp; if (grinder.threadNumber % 2 =3D=3D 0):</span=
><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso=
-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>#&nb=
sp; Even =
threadNumber</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoN=
ormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span la=
ng=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";col=
or:#1F497D'># &n=
bsp; Do insertStatement</span><span lang=3DEN-US><o:p></o:p></span></=
p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri"=
,"sans-serif";color:#1F497D'># el=
se:</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal sty=
le=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-U=
S style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>#  =
; Odd threadNumber</span><span lang=3DEN-US><o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-ser=
if";color:#1F497D'># &=
nbsp; Do queryStatement</span><span lang=3DEN-US><o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bo=
ttom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Ca=
libri","sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p></o=
:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-mar=
gin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-fami=
ly:"Calibri","sans-serif";color:#1F497D'># def __call__(self):<=
/span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
># self.testRunner()</span><span lang=
=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size=
:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> </span><spa=
n lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-marg=
in-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'fon=
t-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>  =
; endTime =3D datetime.now() + duration</span=
><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso=
-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=
=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbs=
p; notDone =3D True</span><span lang=3D=
EN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-al=
t:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10=
.5pt;font-family:"Calibri","sans-serif";color:#1F497D'> &n=
bsp; while notDone:</span><span lang=3DEN-US><o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-=
bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'> &n=
bsp; connection =3D None</span><span lang=3DEN-US><o:p></o:p></span><=
/p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-=
alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri=
","sans-serif";color:#1F497D'> &nb=
sp; insertStatement =3D None</span><span lang=3DEN-US><o:p></o:p></span></p=
><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-al=
t:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri",=
"sans-serif";color:#1F497D'>  =
; queryStatement =3D None</span><span lang=3DEN-US><o:p></o:p></span></p><p=
class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:a=
uto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sa=
ns-serif";color:#1F497D'> n=
otDone =3D datetime.now() < endTime</span><span lang=3DEN-US><o:p></o:p>=
</span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin=
-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:=
"Calibri","sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-=
margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-f=
amily:"Calibri","sans-serif";color:#1F497D'> &=
nbsp; try:</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3D=
MsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><spa=
n lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif"=
;color:#1F497D'>  =
; connection =3D getConnection()</span><span lang=3DEN-US><o:p></o:p>=
</span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin=
-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:=
"Calibri","sans-serif";color:#1F497D'># =
insertStatement =3D connection.createStatement()</=
span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US sty=
le=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'>&n=
bsp; queryState=
ment =3D connection.createStatement()</span><span lang=3DEN-US><o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-=
bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"=
Calibri","sans-serif";color:#1F497D'> </span><span lang=3DEN-US><o:p><=
/o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-m=
argin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-fa=
mily:"Calibri","sans-serif";color:#1F497D'># &=
nbsp; test1.record(insertStatement)</span><span lan=
g=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-to=
p-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-siz=
e:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># &nb=
sp; insertStatement.execute("=
;insert into grinder_test1126 values(%d, %d)" %</span><span lang=3DEN-=
US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:a=
uto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-size:10.5p=
t;font-family:"Calibri","sans-serif";color:#1F497D'># &nbs=
p; &=
nbsp; &nbs=
p; (grinder.threadNumber, grinder.runNumber))=
</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US =
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'=
> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal=
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'> t=
est2.record(queryStatement)</span><span lang=3DEN-US><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","=
sans-serif";color:#1F497D'> =
queryStatement.execute("select * from employee"=
;)</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal styl=
e=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US=
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D=
'> </span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNorma=
l style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=
=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color=
:#1F497D'> finally:</span><span l=
ang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US style=3D'font-s=
ize:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D'># &=
nbsp; ensureClosed(insertStatemen=
t)</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal styl=
e=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=3DEN-US=
style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D=
'> ensure=
Closed(queryStatement)</span><span lang=3DEN-US><o:p></o:p></span></p><p cl=
ass=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto=
'><span lang=3DEN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-=
serif";color:#1F497D'>  =
; ensureClosed(connection)</span><span lang=3DEN-US><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto=
;mso-margin-bottom-alt:auto'><span lang=3DEN-US> <o:p></o:p></span></p=
></div></div></div></div><p class=3DMsoNormal><span lang=3DEN-US>----------=
--------------------------------------------------------------------<br>___=
____________________________________________<br>grinder-use mailing list<br=
><a href=3D"mailto:[email protected]" target=3D"_blank">gri=
[email protected]</a><br><a href=3D"https://lists.sourceforge.=
net/lists/listinfo/grinder-use" target=3D"_blank">https://lists.sourceforge=
.net/lists/listinfo/grinder-use</a><o:p></o:p></span></p></blockquote></div=
></div></body></html>
--__1444829048689157664abhmp0002.oracle.com--
--===============0689534502821676248==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
--===============0689534502821676248==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
grinder-use mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/grinder-use
--===============0689534502821676248==--