Author: aco
Date: Thu Jun 22 23:41:47 2006
New Revision: 416584
URL: http://svn.apache.org/viewvc?rev=416584&view=rev
Log:
Change the readme.txt to readme.html that is based on the wiki.
Added:
incubator/activemq/trunk/activemq-perftest/readme.html
Removed:
incubator/activemq/trunk/activemq-perftest/readme.txt
Added: incubator/activemq/trunk/activemq-perftest/readme.html
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-perftest/readme.html?rev=416584&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-perftest/readme.html (added)
+++ incubator/activemq/trunk/activemq-perftest/readme.html Thu Jun 22 23:41:47
2006
@@ -0,0 +1,569 @@
+<h2><a
name="ActiveMQPerformanceModuleUsersManual-RunningMaven2PerformanceTest"></a>Running
Maven 2 Performance Test</h2>
+
+<p>This <span class="nobr"><a href="http://maven.apache.org" title="Visit page
outside Confluence" rel="nofollow">Maven 2</a></span> plugin allows you to run
performance tests easily using the Maven command line or run tests
automatically in <span class="nobr"><a
href="http://maven.apache.org/continuum/" title="Visit page outside Confluence"
rel="nofollow">Continuum</a></span></p>
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-Prerequisites"></a>Prerequisites</h3>
+
+<p>Currently we have not released the plugin so you could well have to build
it yourself first. Start with a complete build of Apache ActiveMQ and then
do</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java">cd tooling/maven-activemq-perf-plugin
+mvn clean install</pre>
+</div></div>
+<p>To run the following Maven goals make sure you are inside a Maven2 project
directory where its POM is enabled with the Maven2 plugin such as the <span
class="nobr"><a
href="http://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-perftest/"
title="Visit page outside Confluence" rel="nofollow">activemq-perftest
module</a></span>.</p>
+
+<h3><a name="ActiveMQPerformanceModuleUsersManual-Gettingstarted"></a>Getting
started</h3>
+
+<p>To get started try typing the following commands into separate shells from
the <span class="nobr"><a
href="http://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-perftest/"
title="Visit page outside Confluence" rel="nofollow">activemq-perftest
directory</a></span></p>
+<div class="code"><div class="codeContent">
+<pre class="code-java">mvn activemq-perf:broker -Durl=broker:tcp:<span
class="code-comment">//localhost:61616
+</span>mvn activemq-perf:consumer
+mvn activemq-perf:producer</pre>
+</div></div>
+<p>If you run the broker on a different machine then change the producer and
consumer commands to</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java">mvn activemq-perf:consumer
-Dfactory.brokerUrl=tcp:<span class="code-comment">//host:port
+</span>mvn activemq-perf:producer -Dfactory.brokerUrl=tcp:<span
class="code-comment">//host:port</span></pre>
+</div></div>
+<p>where you switch host:port with the actual values.</p>
+
+<p>When you run the producer & consumer, it generates an XML performance
report in the current directory, so that you can graph and chart the results
etc. See the <a href="/confluence/display/ACTIVEMQ/sample+report" title="sample
report">sample report</a></p>
+
+<h3><a name="ActiveMQPerformanceModuleUsersManual-Mavengoals"></a>Maven
goals</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Goal </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> activemq-perf:broker </td>
+<td class="confluenceTd"> Starts broker using the activemq configuration file
located in "src\main\resources\broker-conf" where the default config is
activemq.xml. <br clear="all">
+ Parameters: <br clear="all">
+ 1. -DconfigType - specifies the type of configuration to use. Its value
must be one of the filename in the "..\broker-config" directory (e.g.
-DconfigType=kaha). <br clear="all">
+ 2. -DconfigFile - path to config file other than those in
"src\..\broker-config".e.g -DconfigFile=c:\dir\activemq.xml) </td>
+</tr>
+<tr>
+<td class="confluenceTd"> activemq-perf:consumer </td>
+<td class="confluenceTd"> Starts the consumer's performance testing. The
generated report file can be found in the directory specified in the parameter
"sysTest.reportDir". </td>
+</tr>
+<tr>
+<td class="confluenceTd"> activemq-perf:producer </td>
+<td class="confluenceTd"> Starts the producer's performance testing. The
generated report file can be found in the directory specified in the parameter
"sysTest.reportDir". </td>
+</tr>
+</tbody></table>
+<p><sup>1</sup> <b>Note</b>:The parameters for both consumer and producers are
described in the next section. (<a
href="/confluence/display/ACTIVEMQ/sample+report" title="sample report">sample
report</a>)</p>
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningasystemofJMSClients(Producer/Consumer)"></a>Configuration
for running a system of JMS Clients (Producer/Consumer)</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value <br clear="all"> </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.clientPrefix </td>
+<td class="confluenceTd"> JmsConsumer or JmsProducer </td>
+<td class="confluenceTd"> Specifies the client name prefix that will be use
for each system. By default it will use JmsConsumer for consumer systems, and
JmsProducer for producer systems. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.numClients </td>
+<td class="confluenceTd"> 1 </td>
+<td class="confluenceTd"> Specifies the number of JMS Clients to start. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.totalDests </td>
+<td class="confluenceTd"> 1 </td>
+<td class="confluenceTd"> Specifies the total number of destinations to use
for the whole system test. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.destDistro </td>
+<td class="confluenceTd"> all </td>
+<td class="confluenceTd"> Specifies how to distribute the destinations to the
clients. Available values are (Invalid value will result to using the default
value 'all')<sup>1</sup>:
+<ul>
+ <li>'all' - All clients will send/receive to all destinations. i.e. if
there are 2 producers and 5 destinations, each producer will send a message to
each individual destination.</li>
+ <li>'equal' - Clients will equally divide the destinations among
themselves. i.e. if there are 2 producers and 5 destinations, each producer
will send messages to 2 destinations. The fifth destination will not be
used.</li>
+ <li>'divide' - Clients will divide the destinations among themselves
regardless of equality. i.e. if there are 2 producers and 5 destinations,
producer 1 will send to 3 destinations, while producer 2 will send to 2
destinations.</li>
+</ul>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.reportDirectory </td>
+<td class="confluenceTd"> ./ </td>
+<td class="confluenceTd"> The directory where the sampler report will be
saved. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.reportName </td>
+<td class="confluenceTd"> null </td>
+<td class="confluenceTd"> The default filename the sampler report will be
saved us. There is usually no need to set this setting as the default value
will create either JmsProducer_numClients#<em>numDests#</em><Dest
Distro>.xml and JmsConsumer_numClients#_numDests#_<Dest Distro>.xml,
where # represents the number of clients and destinations set for that system,
and <Dest Distro> specifies the destination distribution for the system.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.reportType </td>
+<td class="confluenceTd"> xml </td>
+<td class="confluenceTd"> Specifies the manner of generating the performance
report. Available values are:
+<ul>
+ <li>'xml' - Write the performance report into an xml file. Specified by
reportDirectory and reportName. A verbose summary will also be displayed at the
end of the test.</li>
+ <li>'verbose' - All information will be written to the standard output,
which includes settings, sampler data, and performance summary.</li>
+</ul>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.samplers </td>
+<td class="confluenceTd"> tp,cpu </td>
+<td class="confluenceTd"> Specifies the samplers that will be started. To use
enable more than one sampler, separate the values by commas without spaces.
Available values are:
+<ul>
+ <li>'tp' - Throughput sampler</li>
+ <li>'cpu' - CPU Usage sampler</li>
+</ul>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> sysTest.spiClass </td>
+<td class="confluenceTd"> org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI
</td>
+<td class="confluenceTd"> The service provider interface class that allows the
client to create a generic connection factory. Current available SPI classes
include:
+<ol>
+ <li>'org.apache.activemq.tool.ActiveMQPojoSPI'</li>
+ <li>'org.apache.activemq.tool.ActiveMQClassLoaderSPI'</li>
+</ol>
+</td>
+</tr>
+</tbody></table>
+<p><sup>1</sup> <b>Note</b>: If the number of destinations is less than the
number of clients and the distribution type is either 'equal' or 'divide', each
client will send/receive from only one destination, distributing the
destinations among the clients. i.e. if there are 5 producers and 2
destinations, 3 producers will send to destination 1, and 2 producers will send
to destination 2. Also, a consumer can only receive from a single destination,
unless composite destination is supported and specified.</p>
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningaJMSProducer"></a>Configuration
for running a JMS Producer</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.sessTransacted </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> Specifies if the session created will be transacted
or not. See the JMS Specifications for more details. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.sessAckMode </td>
+<td class="confluenceTd"> autoAck </td>
+<td class="confluenceTd"> Specified the acknowledge mode of the session. See
the JMS Specifications for more details. Available values are:
+<ol>
+ <li>'autoAck' - Session.AUTO_ACKNOWLEDGE</li>
+ <li>'clientAck' - Session.CLIENT_ACKNOWLEDGE</li>
+ <li>'dupsAck' - Session.DUPS_OK_ACKNOWLEDGE</li>
+ <li>'transacted' - Session.TRANSACTED</li>
+</ol>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.destName </td>
+<td class="confluenceTd"> TEST.FOO </td>
+<td class="confluenceTd"> The prefix of the destination name to use. To
specify a queue, prefix the destination name with 'queue://', for topics,
prefix the destination with 'topic://'. If no prefix is specified, a topic will
be created. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.destComposite </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If there are more than one destination, and
destComposite=true, the destinations will be merged into one. This assumes that
the provider supports composite destinations. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.deliveryMode </td>
+<td class="confluenceTd"> nonpersistent </td>
+<td class="confluenceTd"> The message delivery mode that will be used for each
producer. Available values are:
+<ol>
+ <li>'nonpersistent' - use non-persistent delivery mode.
javax.jms.DeliveryMode.NON_PERSISTENT.</li>
+ <li>'persistent' - use persistent delivery mode.
javax.jms.DeliveryMode.PERSISTENT.</li>
+</ol>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.messageSize </td>
+<td class="confluenceTd"> 1024 bytes </td>
+<td class="confluenceTd"> The size of each text message to send. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.createNewMsg </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, each send will create a new JMS Message
with the specified message size with incrementing text messages (i.e. Text
Message 1, Text Message 2, ...). If false, only one message will be created
before the send loop, and this message will be sent over and over again. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.sendType </td>
+<td class="confluenceTd"> time </td>
+<td class="confluenceTd"> Send either time-based or message-count-based.
Available values are:
+<ol>
+ <li>'time' - keep sending messages until a specific interval of time
elapses.</li>
+ <li>'count' - keep sending messages until N messages has been sent.</li>
+</ol>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.sendCount </td>
+<td class="confluenceTd"> 1000000 msgs <br clear="all">
+ (1 million) </td>
+<td class="confluenceTd"> If sendType=count, send this number of messages.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> producer.sendDuration </td>
+<td class="confluenceTd"> 300000 ms <br clear="all">
+ (5 mins) </td>
+<td class="confluenceTd"> If sendType=time, send messages for this number of
milliseconds. </td>
+</tr>
+</tbody></table>
+
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningaJMSConsumer"></a>Configuration
for running a JMS Consumer</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.sessTransacted </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> Specifies if the session created will be transacted
or not. See the JMS Specifications for more details. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.sessAckMode </td>
+<td class="confluenceTd"> autoAck </td>
+<td class="confluenceTd"> Specified the acknowledge mode of the session. See
the JMS Specifications for more details. Available values are:
+<ol>
+ <li>'autoAck' - Session.AUTO_ACKNOWLEDGE</li>
+ <li>'clientAck' - Session.CLIENT_ACKNOWLEDGE</li>
+ <li>'dupsAck' - Session.DUPS_OK_ACKNOWLEDGE</li>
+ <li>'transacted' - Session.TRANSACTED</li>
+</ol>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.destName </td>
+<td class="confluenceTd"> TEST.FOO </td>
+<td class="confluenceTd"> The prefix of the destination name to use. To
specify a queue, prefix the destination name with 'queue://', for topics,
prefix the destination with 'topic://'. If no prefix is specified, a topic will
be created. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.destComposite </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If there are more than one destination, and
destComposite=true, the destinations will be merged into one. This assumes that
the provider supports composite destinations. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.durable </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, create a durable subscriber, otherwise
create a message consumer. See the JMS Specifications for more details. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.asyncRecv </td>
+<td class="confluenceTd"> true </td>
+<td class="confluenceTd"> If true, asynchronously receive messages using the
onMessage() method, otherwise use the receive() method. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.recvType </td>
+<td class="confluenceTd"> time </td>
+<td class="confluenceTd"> Receive either time-based or message-count-based.
Available values are:
+<ol>
+ <li>'time' - keep receiving messages until a specific time interval has
elapsed.</li>
+ <li>'count' - keep receiving until N messages has been received.</li>
+</ol>
+</td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.recvCount </td>
+<td class="confluenceTd"> 1000000 msgs <br clear="all">
+ (1 million) </td>
+<td class="confluenceTd"> If recvType=count, receive this much messages. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> consumer.recvType </td>
+<td class="confluenceTd"> 300000 ms <br clear="all">
+ (5 mins) </td>
+<td class="confluenceTd"> If recvType=time, receive messages for this specific
time duration. </td>
+</tr>
+</tbody></table>
+<p><b>Note</b>: If you have more than one consumer receiving from multiple
destinations, it is a good idea to change the sysTest.destDistro to 'equal',
since by default it uses 'all' and a consumer can only receive from a single
destination, hence all consumers will receive from the first destination in the
list only.</p>
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-ConfigurationforSPIConnectionFactory:org.apache.activemq.tool.spi.ActiveMQPojoSPI"></a>Configuration
for SPI Connection Factory: org.apache.activemq.tool.spi.ActiveMQPojoSPI</h3>
+
+<p><b>Description:</b> This provides details in configuring the JMS Connection
Factory created by ActiveMQPojoSPI. Default values are based from the default
values of the service provider
org.apache.activemq.ActiveMQConnectionFactory.</p>
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.brokerUrl </td>
+<td class="confluenceTd"> tcp://localhost:61616 </td>
+<td class="confluenceTd"> The url of the broker the client will connect to.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.username </td>
+<td class="confluenceTd"> null </td>
+<td class="confluenceTd"> Username on the connection to use. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.password </td>
+<td class="confluenceTd"> null </td>
+<td class="confluenceTd"> Password on the connection to use. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.clientID </td>
+<td class="confluenceTd"> null </td>
+<td class="confluenceTd"> Client ID the connection will use. If none is
specified, it will be automatically generated. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.asyncSend </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, asynchronously send messages. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.asyncDispatch </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, asynchronously dispatch messages. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.asyncSession </td>
+<td class="confluenceTd"> true </td>
+<td class="confluenceTd"> If true, session will dispatch messages
asynchronously. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.closeTimeout </td>
+<td class="confluenceTd"> 15000 ms </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.copyMsgOnSend </td>
+<td class="confluenceTd"> true </td>
+<td class="confluenceTd"> If true, creates a copy of the message to be sent.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.disableTimestamp </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, disable the setting of the JMSTimestamp.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.deferObjSerial </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, defer the serialization of message objects.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.optimAck </td>
+<td class="confluenceTd"> true </td>
+<td class="confluenceTd"> If true, optimizes the acknowledgement of messages.
</td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.optimDispatch </td>
+<td class="confluenceTd"> true </td>
+<td class="confluenceTd"> If true, optimizes the dispatching of messages. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchQueue </td>
+<td class="confluenceTd"> 1000 messages </td>
+<td class="confluenceTd"> Number of messages a queue consumer will cache in
RAM before processing it. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchTopic </td>
+<td class="confluenceTd"> 32766 messages </td>
+<td class="confluenceTd"> Number of messages a topic consumer will cache in
RAM before processing it. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.useCompression </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, compress message data. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.useRetroactive </td>
+<td class="confluenceTd"> false </td>
+<td class="confluenceTd"> If true, make consumers retroactive. </td>
+</tr>
+</tbody></table>
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-ConfigurationforSPIConnectionFactory:org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI"></a>Configuration
for SPI Connection Factory:
org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI</h3>
+
+<p><b>Description:</b> This provides details in configuring the JMS Connection
Factory created by ActiveMQClassLoaderSPI. Default values are based from the
default values of the service provider
org.apache.activemq.ActiveMQConnectionFactory.</p>
+
+<p>ActiveMQClassLoaderSPI loads from the classpath
"org.apache.activemq.ActiveMQConnectionFactory" and configures it using
reflection. Configuration is generally based on the API of the class loaded.
General format is factory.YYY or factory.XXX.YYY, where the last variable (YYY)
is the property to set and everything in between is the getter of the class to
use to set (YYY). For example:</p>
+<ol>
+ <li>To set the value for asyncSend in ActiveMQConnectionFactory,
use:<br>
+<tt>factory.useAsyncSend=true</tt>, which is equivalent to calling
<tt>factory.setUseAsyncSend(true)</tt></li>
+</ol>
+
+
+<ol>
+ <li>To set the queue prefetch for ActiveMQConnectionFactory, use:<br>
+<tt>factory.prefetchPolicy.queuePrefetch=1</tt>, which is equivalent to
calling <tt>factory.getPrefetchPolicy().setQueuePrefetch(1)</tt></li>
+</ol>
+
+
+<p>It should be noted that the loaded class should implement the appropriate
getter and setter methods. Nested objects should also be properly instantiated.
For more information on configuring this SPI, refer to the specific provider
API manual.</p>
+
+<p>As of ActiveMQ 4.0.1, these are the available fields and default values:</p>
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.optimizeDurableTopicPrefetch
</td>
+<td class="confluenceTd"> 1000 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.durableTopicPrefetch </td>
+<td class="confluenceTd"> 100 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.password </td>
+<td class="confluenceTd"> null </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.queueBrowserPrefetch </td>
+<td class="confluenceTd"> 500 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.useCompression </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.disableTimeStampsByDefault </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.optimizedMessageDispatch </td>
+<td class="confluenceTd"> true </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.useRetroactiveConsumer </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.alwaysSessionAsync </td>
+<td class="confluenceTd"> true </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.copyMessageOnSend </td>
+<td class="confluenceTd"> true </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.topicPrefetch </td>
+<td class="confluenceTd"> 32766 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.useAsyncSend </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.redeliveryPolicy.backOffMultiplier </td>
+<td class="confluenceTd"> 5 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.inputStreamPrefetch </td>
+<td class="confluenceTd"> 100 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.closeTimeout </td>
+<td class="confluenceTd"> 15000 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.userName </td>
+<td class="confluenceTd"> null </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.optimizeAcknowledge </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.clientID </td>
+<td class="confluenceTd"> null </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.objectMessageSerializationDefered </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.asyncDispatch </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.redeliveryPolicy.initialRedeliveryDelay </td>
+<td class="confluenceTd"> 1000 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.queuePrefetch </td>
+<td class="confluenceTd"> 1000 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.redeliveryPolicy.maximumRedeliveries </td>
+<td class="confluenceTd"> 5 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.redeliveryPolicy.useCollisionAvoidance </td>
+<td class="confluenceTd"> false </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.prefetchPolicy.maximumPendingMessageLimit
</td>
+<td class="confluenceTd"> 0 </td>
+</tr>
+<tr>
+<td class="confluenceTd"> factory.redeliveryPolicy.useExponentialBackOff </td>
+<td class="confluenceTd"> false </td>
+</tr>
+</tbody></table>
+
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-Configurationforthethroughputsampler"></a>Configuration
for the throughput sampler</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> tpSampler.duration </td>
+<td class="confluenceTd"> 300000 </td>
+<td class="confluenceTd"> The total duration (in ms) the sampler will run,
including ramp up and ramp down time. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> tpSampler.rampUpTime </td>
+<td class="confluenceTd"> 30000 </td>
+<td class="confluenceTd"> The ramp up time of the sampler, sampling will only
start after the ramp up time. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> tpSampler.rampDownTime </td>
+<td class="confluenceTd"> 30000 </td>
+<td class="confluenceTd"> The ramp down time of the sampler, sampling will
stop when the sampler has executed for (duration - rampUpTime - rampDownTime)
ms. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> tpSampler.interval </td>
+<td class="confluenceTd"> 1000 </td>
+<td class="confluenceTd"> The interval (in ms), the sampler will sample for
data. </td>
+</tr>
+</tbody></table>
+
+
+<h3><a
name="ActiveMQPerformanceModuleUsersManual-Configurationforthecpusampler"></a>Configuration
for the cpu sampler</h3>
+
+<table border="1" class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Configuration Key </th>
+<th class="confluenceTh"> Default Value </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> cpuSampler.duration </td>
+<td class="confluenceTd"> 300000 </td>
+<td class="confluenceTd"> The total duration (in ms) the sampler will run,
including ramp up and ramp down time. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> cpuSampler.rampUpTime </td>
+<td class="confluenceTd"> 30000 </td>
+<td class="confluenceTd"> The ramp up time of the sampler, sampling will only
start after the ramp up time. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> cpuSampler.rampDownTime </td>
+<td class="confluenceTd"> 30000 </td>
+<td class="confluenceTd"> The ramp down time of the sampler, sampling will
stop when the sampler has executed for (duration - rampUpTime - rampDownTime)
ms. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> cpuSampler.interval </td>
+<td class="confluenceTd"> 1000 </td>
+<td class="confluenceTd"> The interval (in ms), the sampler will sample for
data. </td>
+</tr>
+</tbody></table>
\ No newline at end of file