[jboss-cvs] JBossAS SVN: r109757 - in projects/jboss-jca/branches/performance: jmeter and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 7 12:05:14 EST 2010


Author: jesper.pedersen
Date: 2010-12-07 12:05:13 -0500 (Tue, 07 Dec 2010)
New Revision: 109757

Added:
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Monitor-Test-Plan.jmx
Modified:
   projects/jboss-jca/branches/performance/doc/perfguide/en/modules/benchmark.xml
   projects/jboss-jca/branches/performance/jmeter/build.xml
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/CommitStatistics.txt
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/ModifyHelperRMIConfiguration.txt
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/jca-local-h2-ds.xml
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Direct-JDBC.jmx
   projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Http-Test.jmx
   projects/jboss-jca/branches/performance/tools/byteman/lib/byteman-sample.jar
Log:
[JBJCA-470] Adding JMX monitoring to JVM

Modified: projects/jboss-jca/branches/performance/doc/perfguide/en/modules/benchmark.xml
===================================================================
--- projects/jboss-jca/branches/performance/doc/perfguide/en/modules/benchmark.xml	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/doc/perfguide/en/modules/benchmark.xml	2010-12-07 17:05:13 UTC (rev 109757)
@@ -20,26 +20,47 @@
    </section>
    <section id="jmeter">
    <title>IronJacamar and JMeter</title>
-
-   <para>JMeter has been setup to benchmark the IronJacama server for HTTP and JDBC loads. Using JMeter has the benefit of using it's flexible test configuration, results sampling and graphing capabilities.</para>
-   <para>Before using JMeter to benchmark you will need to run the following Ant targets only once. Execute these in the root directory of the performance branch. This will retrieve the sever distribution(s) needed and configures the file permissions necessary to start the server.</para>
+   <para>Initial setup</para>
+   <para>JMeter has been setup to benchmark the IronJacama server for HTTP and JDBC loads.</para>
+   <para>Before using JMeter to benchmark run the following Ant targets only once. Execute these in the root directory of the checked out performance branch.</para>
    <programlisting>
 ant download-servers
 ant benchmark</programlisting>
-     
-   <para>To start JMeter call the following Ant target. Calling this target starts a the IronJacmar server with an embedded H2 database required for benchmarking. The database is populated with sample data.</para>
-   <programlisting>ant jmeter</programlisting>
-
+   <para>Test Plans</para>
    <para>With the JMeter integration comes several Test Plans. Test Plans are JMeter test configurations containing the sequence of requests to create the desired load. The default test plan is the first listed below and will be loaded when JMeter is started. To load one of the other test plans select "File - Open" from the JMeter menu.</para>
    <programlisting>src/main/resources/jmeter/Http-Test.jmx
-src/main/resources/jmeter/Direct-JDBC.jmx
-src/main/resources/jmeter/Monitor-Test-Plan.jmx</programlisting>
+src/main/resources/jmeter/Direct-JDBC.jmx</programlisting>
    </section>
    
    <para>The number of concurrent threads executing the requests can be configured in JMeter. See the <ulink url="http://jakarta.apache.org/jmeter/usermanual/index.html">JMeter User Manual</ulink> for step-by-step instructions.</para>
-   <para>To view the performance graph during a test run select the "Graph Results" node in the Http/Direct-JBDC Test Plan.</para>
-   <para>The Monitor Test Plan provides runtime statistics for the rate of transactions completed per second. The test plan uses JMX to gather the metrics. To open the monitoring test plan execute the following command.</para>
+   
+   <para>Monitoring</para>
+   <para>This test plan monitors the transaction rate.</para>
+   <programlisting>src/main/resources/jmeter/Monitor-Test-Plan.jmx</programlisting>
+   
+   <para>The Monitor Test Plan provides runtime statistics for the rate of transactions completed per second. It uses JMX to gather the metrics. To open the monitoring test plan execute the following command.</para>
    <programlisting>ant jmeter.monitoring</programlisting>
-   <para>Run the Monitor test plan at the same time as one of the other plans. To operate using JMX you will need to configure the JAVA_HOME environment property. It needs setting with the home directory of a Java Development Kit. The included rmiregistry service is started to expose the MBean to JMX clients.</para>
-   <para>Note, overhead when running JMeter and the Graph Results can be reduced. Try un-selecting the check boxes labeled 'Average', 'Median', 'Deviation' and 'Threshold' leaving the 'Data' checkbox selected.</para>
+   
+   <para>Use the Monitor test plan alongside one of the other plans. You will need to configure the JAVA_HOME environment property. This needs setting to the home directory of a Java Development Kit. The rmiregistry service is started to expose the MBean to JMX clients (JMeter).</para>
+
+   <para>Startup order</para>
+   <para>To use monitoring the sequence of starting each component is important.</para>
+   <para>To monitor Direct-JDBC.jmx test plan</para>
+   <programlisting>ant database
+ant jmeter.monitoring
+ant jmeter
+   </programlisting>
+<para>To monitor the Http-Test.jmx test plan </para>
+   <programlisting>ant server
+ant jmeter.monitoring
+ant jmeter
+   </programlisting>
+
+   <para>Monitoring of either test plan is exclusive. You will need to shutdown the server or database before starting the other test plan. The following Ant targets will shutdown the respective jvm process.</para>
+   <programlisting>ant shutdown-database
+ant shutdown-server</programlisting>
+   
+   <para>JMeter overhead</para>
+   <para>Note, the overhead of running JMeter and the Graph Results can be reduced. Try un-selecting the check boxes labeled 'Average', 'Median', 'Deviation' and 'Threshold' leaving the 'Data' checkbox selected.</para>
+   
 </chapter>

Modified: projects/jboss-jca/branches/performance/jmeter/build.xml
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/build.xml	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/build.xml	2010-12-07 17:05:13 UTC (rev 109757)
@@ -41,16 +41,30 @@
   <property name="hsqldb.tools.dir" value="../tools/hsqldb" />
   <property name="h2.tools.dir" value="../tools/h2" />
   <property name="byteman.tools.dir" value="${basedir}/../tools/byteman" />
-  <property environment="env"/>
+  <loadproperties srcfile="src/main/resources/database.properties">
+    <filterchain>
+      <expandproperties/>
+      <expandproperties/>
+    </filterchain>
+  </loadproperties>
   
   <property environment="env"/>
   
+  <path id="byteman.classpath">
+    <fileset dir="${byteman.tools.dir}/lib">
+      <include name="*.jar" />
+    </fileset>
+  </path>  
+  
   <path id="jmeter.classpath">
     <fileset dir="${jmeter.tools.dir}">
       <include name="**/*.jar" />
     </fileset>
+    <fileset dir="${hsqldb.tools.dir}/lib">
+      <include name="*.jar" />
+    </fileset>    
   </path>
-       
+
   <path id="src.compile.classpath">
     <fileset dir="../lib/common" includes="*.jar" />
     <fileset dir="${jmeter.tools.dir}/lib">
@@ -62,16 +76,16 @@
       <include name="ApacheJMeter_java.jar"/>
       <include name="ApacheJMeter_components.jar"/>
     </fileset>
+    
+    <fileset dir="${byteman.tools.dir}/lib">
+      <include name="byteman-submit.jar"/>
+    </fileset>
   </path>
   
-  <path id="byteman.classpath">
-     <fileset dir="${byteman.tools.dir}/lib">
-       <include name="*.jar" />
-     </fileset>
-   </path>  
-   
   <path id="hsqldb.classpath">
-    <path refid="jmeter.classpath"/>
+    <fileset dir="${hsqldb.tools.dir}/lib">
+      <include name="*.jar" />
+    </fileset>
     <fileset dir="${byteman.tools.dir}/lib">
       <include name="*.jar" />
     </fileset>
@@ -79,7 +93,7 @@
 
   <path id="h2.classpath">
     <path refid="jmeter.classpath"/>
-    <pathelement path="${h2.tools.dir}/h2-1.2.145.jar"/>
+    <pathelement path="${h2.tools.dir}/lib/h2-1.2.145.jar"/>
     <fileset dir="${byteman.tools.dir}/lib">
       <include name="*.jar" />
     </fileset>
@@ -131,7 +145,7 @@
     <jar destfile="${build.jmeter.dir}/jars/ironjacamar-performance-jmeter.jar"
          index="true">
       <fileset dir="${build.jmeter.dir}/impl">
-         <exclude name="org/apache/jmeter/protocol/java/test/jmx/*"/>
+        <exclude name="org/apache/jmeter/protocol/java/test/jmx/*"/>
       </fileset>
       <manifest>
         <attribute name="Implementation-Title" value="IronJacamar Performance JMeter" />
@@ -140,9 +154,10 @@
       </manifest>
     </jar>
     <jar destfile="${build.jmeter.dir}/jars/jmeter-jmx-extension.jar"
-         index="true">
+        index="true">
       <fileset dir="${build.jmeter.dir}/impl">
-         <include name="org/apache/jmeter/protocol/java/test/jmx/*"/>
+        <include name="org/apache/jmeter/protocol/java/test/jmx/*"/>
+        <include name="org/apache/jmeter/instrumentation/byteman/*"/>
       </fileset>
       <manifest>
         <attribute name="Implementation-Title" value="JMeter Extension for JMX Monitoring" />
@@ -154,8 +169,8 @@
     <delete file="${build.jmeter.dir}/wars/jbjca-web.war" />
     
     <war destfile="${build.jmeter.dir}/wars/jbjca-web.war" 
-         webxml="src/main/resources/WEB-INF/web.xml"
-         index="true">
+        webxml="src/main/resources/WEB-INF/web.xml"
+        index="true">
       <fileset dir="src/main/resources/web">
         <include name="**/*" />
       </fileset>
@@ -177,79 +192,150 @@
     <copy file="${build.jmeter.dir}/wars/jbjca-web.war" todir="${server-home}/system" />
     <copy file="src/main/resources/jca-local-h2-ds.xml" todir="${server-home}/deploy" />
     <copy file="${build.jmeter.dir}/jars/jmeter-jmx-extension.jar" todir="../tools/jmeter/lib/ext"/>
-    <copy file="${h2.tools.dir}/h2-1.2.145.jar" todir="../tools/jmeter/lib"/>
-    <copy file="${h2.tools.dir}/h2-1.2.145.jar" todir="${server-home}/lib" />
+    <copy todir="../tools/jmeter/lib">
+      <fileset dir="${hsqldb.tools.dir}/lib" >
+        <include name="hsqldb.jar"/>
+      </fileset>
+    </copy>
+    <copy todir="${server-home}/lib">
+      <fileset dir="${hsqldb.tools.dir}/lib" >
+        <include name="hsqldb.jar"/>
+      </fileset>
+    </copy>
   </target>
   
-  <target name="jmeter" depends="server" >
-    <antcall target="run.jmeter">
-      <param name="test.plan" value="src/main/resources/jmeter/Http-Test.jmx"/>
-    </antcall>  
-  </target>
-  
-  <target name="jmeter.monitoring" depends="server">
-    <antcall target="run.jmeter">
-      <param name="test.plan" value="src/main/resources/jmeter/Monitor-Test-Plan.jmx"/>
-    </antcall>
-    <get src="http://localhost:8080/jbjca-web/jcaconn" dest="/tmp/"/>
-    <echo message="Activated Periodic stats JMX bean." />
-  </target>
-    
-  <target name="run.jmeter">
-    <java jar="${jmeter.tools.dir}/bin/ApacheJMeter.jar" 
+  <target name="jmeter" depends="deploy,rmiregistry" >
+    <java  
         fork="true"
         spawn="true" 
-        classpathref="jmeter.classpath">
+        classpathref="jmeter.classpath" classname="org.apache.jmeter.NewDriver"
+       dir="${jmeter.tools.dir}/lib">
       <jvmarg value="-Dapple.laf.useScreenMenuBar=true" />
       <!--jvmarg value="-Xdebug" />
-      <jvmrg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" /-->
+      <jvmrg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" /
+      jar="${jmeter.tools.dir}/bin/ApacheJMeter.jar" -->
+       
       <arg value="-t" />
-      <arg value="${test.plan}" />
+      <arg value="${basedir}/src/main/resources/jmeter/Http-Test.jmx" />
     </java>
     <echo message="Started JMeter." />
   </target>
   
+  <target name="jmeter.monitoring" depends="deploy">
+    <java jar="${jmeter.tools.dir}/bin/ApacheJMeter.jar" 
+         fork="true"
+         spawn="true" 
+         classpathref="jmeter.classpath">
+      <jvmarg value="-Dapple.laf.useScreenMenuBar=true" />
+      <arg value="-t" />
+      <arg value="src/main/resources/jmeter/Monitor-Test-Plan.jmx" />
+    </java>
+    <echo message="Started JMeter." />
+  </target>
+  
+  <target name="database" unless="database.isAvailable" depends="check-database-isRunning,rmiregistry">
+    <java fork="true" spawn="true" classpathref="hsqldb.classpath" classname="org.hsqldb.Server">
+      <jvmarg value="-javaagent:${byteman.tools.dir}/lib/byteman.jar=listener:true"/>
+      <!--jvmarg value="-Dorg.jboss.byteman.verbose"/-->
+      <jvmarg value="-Dcom.sun.management.jmxremote"/>
+      <arg value="-database.0" />
+      <arg value="mem:${db-vendor.database}" />
+      <arg value="-silent" />
+      <arg value="true" />
+    </java>
+    <parallel>
+      <waitfor maxwait="1" maxwaitunit="minute" checkevery="1" checkeveryunit="second">
+        <socket server="${db-vendor.serverName}" port="${db-vendor.serverPort}" />
+      </waitfor>
+    </parallel>
+    <echo message="Database started." />
+    <antcall target="load-rules" />
+    <antcall target="database-sample-data" />
+    <echo message="Sample data loaded." />
+  </target>
+  
+  <!--target name="database" unless="database.isAvailable" depends="check-database-isRunning">
+    <java fork="true" spawn="true" classpathref="h2.classpath" classname="org.h2.tools.Server">
+      <jvmarg value="-javaagent:${byteman.tools.dir}/lib/byteman.jar=listener:true"/>
+      <jvmarg value="-Dcom.sun.management.jmxremote" />           
+      <arg value="-tcp" />
+      <arg value="-tcpAllowOthers" />
+      <arg value="-trace" />
+    </java>
+    <parallel>
+      <waitfor maxwait="1" maxwaitunit="minute" checkevery="1" checkeveryunit="second">
+        <socket server="${db-vendor.serverName}" port="${db-vendor.serverPort}" />
+      </waitfor>
+    </parallel>
+   
+    <echo message="Database started." />
+    <antcall target="load-rules" />
+    <antcall target="database-sample-data" />
+    <echo message="Sample data loaded." />
+  </target-->
+
   <target name="check-database-isRunning">
     <condition property="database.isAvailable">
-      <socket server="localhost" port="9001" />
+      <socket server="${db-vendor.serverName}" port="${db-vendor.serverPort}" />
     </condition>
     <echo message="Status of running database is [${database.isAvailable}]." />
   </target>
   
-  <target name="sample-data">
+  <target name="server-sample-data">
+    <get src="http://localhost:8080/jbjca-web/load-data" dest="/tmp/"/>
+  </target>
+  
+  <target name="database-sample-data">
+    <sql src="src/main/resources/sql/sample-data.sql" 
+      driver="${db-vendor.driverClass}" 
+      url="${db-vendor.shutdown.connectionURL}" 
+      userid="sa" password=""
+      classpathref="hsqldb.classpath" />
+  </target>
+  <!--target name="database-sample-data">
+    <sql src="src/main/resources/sql/sample-data.sql" 
+     driver="${db-vendor.driverClass}" 
+     url="${db-vendor.shutdown.connectionURL}" 
+     userid="sa" password=""
+     classpathref="h2.classpath" />
+  </target-->
+  
+  <target name="load-rules">
     <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath">
-       <arg value="-s"/>
-       <arg value="${byteman.tools.dir}/lib/byteman-sample.jar"/>
+      <arg value="-s"/>
+      <arg value="${byteman.tools.dir}/lib/byteman-sample.jar"/>
     </java>
     <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath">
-       <arg value="-l"/>
-       <arg value="src/main/resources/byteman/ModifyHelperRMIConfiguration.txt"/>
+      <arg value="-l"/>
+      <arg value="src/main/resources/byteman/ModifyHelperRMIConfiguration.txt"/>
     </java>
     <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath">
-      <arg value="-l"/>
-      <arg value="src/main/resources/byteman/CommitStatistics.txt"/>
+     <arg value="-l"/>
+     <arg value="src/main/resources/byteman/CommitStatistics.txt"/>
     </java>
     <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath">
       <arg value="-l"/>
       <arg value="src/main/resources/byteman/RuleHelper.txt"/>
     </java>
-    <get src="http://localhost:8080/jbjca-web/load-data" dest="/tmp/"/>
+    <echo message="Loaded Byteman Rules for tx monitoring." />
   </target>
   
   <target name="server" unless="server.isAvailable" depends="deploy,check-server-isRunning,build-servers.os-check,rmiregistry">
     <exec executable="${exec}" spawn="true" dir="${server-home}/bin">
       <arg line="run.${ext}"/>
-      <env key="JAVA_OPTS" value="-javaagent:${byteman.tools.dir}/lib/byteman.jar=listener:true -Dorg.jboss.byteman.verbose"/>
-      <!-- -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -->
+      <env key="JAVA_OPTS" value="-javaagent:${byteman.tools.dir}/lib/byteman.jar=listener:true  -Djdbc.url=${db-vendor.connectionURL}"/>
+      <!-- -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000  -Dorg.jboss.byteman.verbose-->
     </exec>
   
     <parallel>
       <waitfor maxwait="1" maxwaitunit="minute" checkevery="1" checkeveryunit="second">
-         <http url="http://localhost:8080/" />
+        <http url="http://localhost:8080/" />
       </waitfor>
     </parallel>
+    <antcall target="load-rules" />
     <echo message="Started server."/>
-    <antcall target="sample-data" />
+    <antcall target="server-sample-data" />
+    <get src="http://localhost:8080/jbjca-web/jcaconn" dest="/tmp/"/>
   </target>
   
   <target name="check-server-isRunning">
@@ -261,18 +347,54 @@
   
   <target name="check-rmiregistry-isRunning">
     <condition property="rmiregistry.isAvailable">
-      <socket server="localhost" port="9999" />
+      <socket server="localhost" port="1099" />
     </condition>
     <echo message="Status of running server is [${rmiregistry.isAvailable}]." />
   </target>
+  
+  <!--target name="shutdown-database">
+    <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath" failonerror="false">
+      <arg value="-u"/>
+    </java>
+    <sql driver="${db-vendor.driverClass}" 
+          url="${db-vendor.shutdown.connectionURL}" 
+          userid="${db-vendor.userName}" password="${db-vendor.password}" 
+          classpathref="hsqldb.classpath"
+          onerror="stop" >
+       SHUTDOWN;
+    </sql>
+  </target-->
+  
+  <target name="shutdown-database">
+    <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath" failonerror="false">
+      <arg value="-u"/>
+    </java>
+    <sql driver="${db-vendor.driverClass}" 
+      url="${db-vendor.shutdown.connectionURL}" 
+      userid="${db-vendor.userName}" password="${db-vendor.password}" 
+      classpathref="h2.classpath"
+      onerror="stop" >
+      SHUTDOWN;
+    </sql>
+  </target>
+  
+  <target name="shutdown-server">
+    <java classname="org.jboss.byteman.agent.submit.Submit" classpathref="byteman.classpath" failonerror="false">
+      <arg value="-u"/>
+    </java>
+     
+    <java jar="${server-home}/lib/fungal-cli.jar" fork="true">
+      <arg value="shutdown"/>
+    </java>
+  </target>
 
   <target name="rmiregistry" unless="rmiregistry.isAvailable" depends="check-rmiregistry-isRunning">
     <exec executable="${env.JAVA_HOME}/bin/rmiregistry" spawn="true">
-      <arg value="9999"/>
+      <arg value="1099"/>
     </exec>
     <parallel>
       <waitfor maxwait="1" maxwaitunit="minute" checkevery="1" checkeveryunit="second">
-        <socket server="localhost" port="9999" />
+        <socket server="localhost" port="1099" />
       </waitfor>
     </parallel>
     <echo message="Started rmiregistry."/>

Modified: projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/CommitStatistics.txt
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/CommitStatistics.txt	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/CommitStatistics.txt	2010-12-07 17:05:13 UTC (rev 109757)
@@ -29,10 +29,9 @@
 
 # Commit stats rule.
 RULE CommitStatistics
-CLASS org.h2.engine.Session
-METHOD commit(boolean)
+INTERFACE org.hsqldb.TransactionManager
+METHOD commitTransaction
 AT EXIT
 IF TRUE
 DO incrementCounter("transaction commits") 
 ENDRULE
-

Modified: projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/ModifyHelperRMIConfiguration.txt
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/ModifyHelperRMIConfiguration.txt	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/byteman/ModifyHelperRMIConfiguration.txt	2010-12-07 17:05:13 UTC (rev 109757)
@@ -31,3 +31,11 @@
 IF TRUE
 DO RETURN TRUE
 ENDRULE
+
+RULE enable-rmi-server-port
+CLASS JMXHelper
+METHOD rmiPort()
+AT EXIT
+IF TRUE
+DO RETURN 1099
+ENDRULE

Modified: projects/jboss-jca/branches/performance/jmeter/src/main/resources/jca-local-h2-ds.xml
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/jca-local-h2-ds.xml	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/jca-local-h2-ds.xml	2010-12-07 17:05:13 UTC (rev 109757)
@@ -23,9 +23,9 @@
 <datasources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://www.jboss.org/jee/schema/ironjacamar/datasources_1_0.xsd">
   <datasource jndi-name="SampleDS" pool-name="SampleDS">
-    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
+    <connection-url>jdbc:hsqldb:mem:test</connection-url>
     <!-- The driver class -->
-    <driver-class>org.h2.Driver</driver-class>
+    <driver-class>org.hsqldb.jdbcDriver</driver-class>
     <pool>
       <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
       <min-pool-size>5</min-pool-size>

Modified: projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Direct-JDBC.jmx
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Direct-JDBC.jmx	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Direct-JDBC.jmx	2010-12-07 17:05:13 UTC (rev 109757)
@@ -11,11 +11,194 @@
       <stringProp name="TestPlan.user_define_classpath"></stringProp>
     </TestPlan>
     <hashTree>
+      <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="JDBC Connection Configuration" enabled="true">
+        <stringProp name="dataSource">H2DB-Pool1</stringProp>
+        <stringProp name="poolMax">5000</stringProp>
+        <stringProp name="timeout">5000</stringProp>
+        <stringProp name="trimInterval">6000</stringProp>
+        <boolProp name="autocommit">false</boolProp>
+        <boolProp name="keepAlive">true</boolProp>
+        <stringProp name="connectionAge">4000</stringProp>
+        <stringProp name="checkQuery">SELECT 1 FROM Customer WHERE ID=1;</stringProp>
+        <stringProp name="dbUrl">jdbc:hsqldb:hsql://localhost;ifexists=true</stringProp>
+        <stringProp name="driver">org.hsqldb.jdbcDriver</stringProp>
+        <stringProp name="username">sa</stringProp>
+        <stringProp name="password"></stringProp>
+      </JDBCDataSource>
+      <hashTree/>
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Prepare Database" enabled="false">
+        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
+        <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">1</stringProp>
+        </elementProp>
+        <stringProp name="ThreadGroup.num_threads">1</stringProp>
+        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+        <longProp name="ThreadGroup.start_time">1290526715000</longProp>
+        <longProp name="ThreadGroup.end_time">1290526715000</longProp>
+        <boolProp name="ThreadGroup.scheduler">false</boolProp>
+        <stringProp name="ThreadGroup.duration"></stringProp>
+        <stringProp name="ThreadGroup.delay"></stringProp>
+      </ThreadGroup>
+      <hashTree>
+        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
+        <hashTree>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Drop Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">DROP TABLE Item IF EXISTS;</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Drop Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">DROP TABLE Invoice IF EXISTS;</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Drop Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">DROP TABLE Product IF EXISTS;</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Drop Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">DROP TABLE Customer IF EXISTS;</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Create Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">CREATE TABLE Customer(ID INTEGER PRIMARY KEY,FirstName VARCHAR(20),LastName VARCHAR(20),Street VARCHAR(20),City VARCHAR(20)); </stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Create Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">CREATE TABLE Invoice(ID INTEGER PRIMARY KEY,CustomerID INTEGER,Total DECIMAL(10,2), FOREIGN KEY (CustomerId) REFERENCES Customer(ID) ON DELETE CASCADE); </stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Create Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">CREATE TABLE Product(ID INTEGER PRIMARY KEY,Name VARCHAR(20),Price DECIMAL(10,2)); </stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Create Table" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">CREATE TABLE Item(InvoiceID INTEGER,Item INTEGER,ProductID INTEGER,Quantity INTEGER,Cost DECIMAL(10,2),PRIMARY KEY(InvoiceID,Item), FOREIGN KEY (InvoiceId) REFERENCES Invoice (ID) ON DELETE CASCADE, FOREIGN KEY (ProductId) REFERENCES Product(ID) ON DELETE CASCADE);</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Insert" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">INSERT INTO Customer VALUES(0,&apos;Laura&apos;,&apos;Steel&apos;,&apos;429 Seventh Av.&apos;,&apos;Dallas&apos;);</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Insert" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">INSERT INTO Product VALUES(0,&apos;Iron Iron&apos;,54);</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Insert" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">INSERT INTO Invoice VALUES(0,0,0.0);</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Insert" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Update Statement</stringProp>
+            <stringProp name="query">INSERT INTO Item VALUES(0,10,0,22,1.5);</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+          <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Commit Request" enabled="true">
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
+            <stringProp name="queryType">Commit</stringProp>
+            <stringProp name="query">commit;</stringProp>
+            <stringProp name="queryArguments"></stringProp>
+            <stringProp name="queryArgumentsTypes"></stringProp>
+            <stringProp name="variableNames"></stringProp>
+          </JDBCSampler>
+          <hashTree/>
+        </hashTree>
+        <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="false">
+          <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"></stringProp>
+        </ResultCollector>
+        <hashTree/>
+      </hashTree>
       <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="JDBC Users" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
         <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">10000</stringProp>
+          <stringProp name="LoopController.loops">1000000</stringProp>
         </elementProp>
         <stringProp name="ThreadGroup.num_threads">20</stringProp>
         <stringProp name="ThreadGroup.ramp_time">10</stringProp>
@@ -26,27 +209,20 @@
         <stringProp name="ThreadGroup.delay"></stringProp>
       </ThreadGroup>
       <hashTree>
-        <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="JDBC Connection Configuration" enabled="true">
-          <stringProp name="dataSource">HSQLDB-Pool1</stringProp>
-          <stringProp name="poolMax">5000</stringProp>
-          <stringProp name="timeout">5000</stringProp>
-          <stringProp name="trimInterval">6000</stringProp>
-          <boolProp name="autocommit">false</boolProp>
-          <boolProp name="keepAlive">true</boolProp>
-          <stringProp name="connectionAge">4000</stringProp>
-          <stringProp name="checkQuery">SELECT 1 FROM Customer WHERE ID=1;</stringProp>
-          <stringProp name="dbUrl">jdbc:hsqldb:hsql://localhost</stringProp>
-          <stringProp name="driver">org.hsqldb.jdbcDriver</stringProp>
-          <stringProp name="username">sa</stringProp>
-          <stringProp name="password"></stringProp>
-        </JDBCDataSource>
-        <hashTree/>
+        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
+        <hashTree>
+          <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
+            <stringProp name="ConstantTimer.delay">1000</stringProp>
+            <stringProp name="TestPlan.comments">This timer allows the database to be prepared with test data.</stringProp>
+          </ConstantTimer>
+          <hashTree/>
+        </hashTree>
         <TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="Transaction Controller - Unit of Work" enabled="true">
           <boolProp name="TransactionController.parent">true</boolProp>
         </TransactionController>
         <hashTree>
           <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="PREPARED SELECT Customer JDBC Request" enabled="true">
-            <stringProp name="dataSource">HSQLDB-Pool1</stringProp>
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
             <stringProp name="queryType">Prepared Select Statement</stringProp>
             <stringProp name="query">SELECT FirstName FROM Customer WHERE ID=?;</stringProp>
             <stringProp name="queryArguments">1</stringProp>
@@ -55,7 +231,7 @@
           </JDBCSampler>
           <hashTree/>
           <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="UPDATE Customer JDBC Request" enabled="true">
-            <stringProp name="dataSource">HSQLDB-Pool1</stringProp>
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
             <stringProp name="queryType">Prepared Update Statement</stringProp>
             <stringProp name="query">UPDATE Customer SET firstname=? WHERE id=?;</stringProp>
             <stringProp name="queryArguments">Jeremy,1</stringProp>
@@ -64,7 +240,7 @@
           </JDBCSampler>
           <hashTree/>
           <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="Commit Transaction JDBC Request" enabled="true">
-            <stringProp name="dataSource">HSQLDB-Pool1</stringProp>
+            <stringProp name="dataSource">H2DB-Pool1</stringProp>
             <stringProp name="queryType">Commit</stringProp>
             <stringProp name="query"></stringProp>
             <stringProp name="queryArguments"></stringProp>
@@ -72,102 +248,6 @@
             <stringProp name="variableNames"></stringProp>
           </JDBCSampler>
           <hashTree/>
-          <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Begin Transaction Java Request" enabled="false">
-            <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
-              <collectionProp name="Arguments.arguments">
-                <elementProp name="Sleep_Time" elementType="Argument">
-                  <stringProp name="Argument.name">Sleep_Time</stringProp>
-                  <stringProp name="Argument.value">100</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Sleep_Mask" elementType="Argument">
-                  <stringProp name="Argument.name">Sleep_Mask</stringProp>
-                  <stringProp name="Argument.value">0xFF</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Label" elementType="Argument">
-                  <stringProp name="Argument.name">Label</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResponseCode" elementType="Argument">
-                  <stringProp name="Argument.name">ResponseCode</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResponseMessage" elementType="Argument">
-                  <stringProp name="Argument.name">ResponseMessage</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Status" elementType="Argument">
-                  <stringProp name="Argument.name">Status</stringProp>
-                  <stringProp name="Argument.value">OK</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="SamplerData" elementType="Argument">
-                  <stringProp name="Argument.name">SamplerData</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResultData" elementType="Argument">
-                  <stringProp name="Argument.name">ResultData</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-              </collectionProp>
-            </elementProp>
-            <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
-          </JavaSampler>
-          <hashTree/>
-          <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java Request" enabled="false">
-            <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
-              <collectionProp name="Arguments.arguments">
-                <elementProp name="Sleep_Time" elementType="Argument">
-                  <stringProp name="Argument.name">Sleep_Time</stringProp>
-                  <stringProp name="Argument.value">100</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Sleep_Mask" elementType="Argument">
-                  <stringProp name="Argument.name">Sleep_Mask</stringProp>
-                  <stringProp name="Argument.value">0xFF</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Label" elementType="Argument">
-                  <stringProp name="Argument.name">Label</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResponseCode" elementType="Argument">
-                  <stringProp name="Argument.name">ResponseCode</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResponseMessage" elementType="Argument">
-                  <stringProp name="Argument.name">ResponseMessage</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="Status" elementType="Argument">
-                  <stringProp name="Argument.name">Status</stringProp>
-                  <stringProp name="Argument.value">OK</stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="SamplerData" elementType="Argument">
-                  <stringProp name="Argument.name">SamplerData</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-                <elementProp name="ResultData" elementType="Argument">
-                  <stringProp name="Argument.name">ResultData</stringProp>
-                  <stringProp name="Argument.value"></stringProp>
-                  <stringProp name="Argument.metadata">=</stringProp>
-                </elementProp>
-              </collectionProp>
-            </elementProp>
-            <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
-          </JavaSampler>
-          <hashTree/>
         </hashTree>
         <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="false">
           <boolProp name="ResultCollector.error_logging">false</boolProp>

Modified: projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Http-Test.jmx
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Http-Test.jmx	2010-12-07 17:01:17 UTC (rev 109756)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Http-Test.jmx	2010-12-07 17:05:13 UTC (rev 109757)
@@ -17,8 +17,8 @@
           <boolProp name="LoopController.continue_forever">false</boolProp>
           <stringProp name="LoopController.loops">80000</stringProp>
         </elementProp>
-        <stringProp name="ThreadGroup.num_threads">30</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
+        <stringProp name="ThreadGroup.num_threads">20</stringProp>
+        <stringProp name="ThreadGroup.ramp_time">15</stringProp>
         <longProp name="ThreadGroup.start_time">1286896125000</longProp>
         <longProp name="ThreadGroup.end_time">1286896125000</longProp>
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
@@ -107,7 +107,6 @@
             </value>
           </objProp>
           <stringProp name="filename"></stringProp>
-          <boolProp name="ResultCollector.success_only_logging">true</boolProp>
         </ResultCollector>
         <hashTree/>
       </hashTree>

Added: projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Monitor-Test-Plan.jmx
===================================================================
--- projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Monitor-Test-Plan.jmx	                        (rev 0)
+++ projects/jboss-jca/branches/performance/jmeter/src/main/resources/jmeter/Monitor-Test-Plan.jmx	2010-12-07 17:05:13 UTC (rev 109757)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="2.1">
+  <hashTree>
+    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Monitor Test Plan" enabled="true">
+      <stringProp name="TestPlan.comments"></stringProp>
+      <boolProp name="TestPlan.functional_mode">false</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="JMX Thread Group" enabled="true">
+        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
+        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+          <boolProp name="LoopController.continue_forever">false</boolProp>
+          <intProp name="LoopController.loops">-1</intProp>
+        </elementProp>
+        <stringProp name="ThreadGroup.num_threads">1</stringProp>
+        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+        <longProp name="ThreadGroup.start_time">1288346092000</longProp>
+        <longProp name="ThreadGroup.end_time">1288346092000</longProp>
+        <boolProp name="ThreadGroup.scheduler">false</boolProp>
+        <stringProp name="ThreadGroup.duration"></stringProp>
+        <stringProp name="ThreadGroup.delay"></stringProp>
+      </ThreadGroup>
+      <hashTree>
+        <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="JMX Sampler for Tx Rate" enabled="true">
+          <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+            <collectionProp name="Arguments.arguments">
+              <elementProp name="JMX_HOST" elementType="Argument">
+                <stringProp name="Argument.name">JMX_HOST</stringProp>
+                <stringProp name="Argument.value">localhost</stringProp>
+                <stringProp name="Argument.metadata">=</stringProp>
+              </elementProp>
+              <elementProp name="JMX_PORT" elementType="Argument">
+                <stringProp name="Argument.name">JMX_PORT</stringProp>
+                <stringProp name="Argument.value">1099</stringProp>
+                <stringProp name="Argument.metadata">=</stringProp>
+              </elementProp>
+              <elementProp name="JMXBEAN_NAME" elementType="Argument">
+                <stringProp name="Argument.name">JMXBEAN_NAME</stringProp>
+                <stringProp name="Argument.value">org.jboss.byteman.sample.jmx:type=PeriodicStats</stringProp>
+                <stringProp name="Argument.metadata">=</stringProp>
+              </elementProp>
+              <elementProp name="JMXBEAN_STATS_RATE_ATTR" elementType="Argument">
+                <stringProp name="Argument.name">JMXBEAN_STATS_RATE_ATTR</stringProp>
+                <stringProp name="Argument.value">transaction commits : rate</stringProp>
+                <stringProp name="Argument.metadata">=</stringProp>
+              </elementProp>
+              <elementProp name="SAMPLER_LABEL" elementType="Argument">
+                <stringProp name="Argument.name">SAMPLER_LABEL</stringProp>
+                <stringProp name="Argument.value">Tx rate sampler</stringProp>
+                <stringProp name="Argument.metadata">=</stringProp>
+              </elementProp>
+            </collectionProp>
+          </elementProp>
+          <stringProp name="classname">org.apache.jmeter.protocol.java.test.jmx.IronJacamarJMXSampler</stringProp>
+        </JavaSampler>
+        <hashTree/>
+        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
+          <stringProp name="ConstantTimer.delay">1000</stringProp>
+          <stringProp name="TestPlan.comments">This timer sets the frequency the JMXBean is called.</stringProp>
+        </ConstantTimer>
+        <hashTree/>
+        <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" 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"></stringProp>
+          <boolProp name="ResultCollector.success_only_logging">true</boolProp>
+        </ResultCollector>
+        <hashTree/>
+      </hashTree>
+    </hashTree>
+  </hashTree>
+</jmeterTestPlan>

Modified: projects/jboss-jca/branches/performance/tools/byteman/lib/byteman-sample.jar
===================================================================
(Binary files differ)



More information about the jboss-cvs-commits mailing list