Author: buildbot
Date: Fri Nov 14 14:24:31 2014
New Revision: 929183
Log:
Production update by buildbot for activemq
Modified:
websites/production/activemq/content/activemq-performance-module-users-manual.html
websites/production/activemq/content/cache/main.pageCache
Modified:
websites/production/activemq/content/activemq-performance-module-users-manual.html
==============================================================================
---
websites/production/activemq/content/activemq-performance-module-users-manual.html
(original)
+++
websites/production/activemq/content/activemq-performance-module-users-manual.html
Fri Nov 14 14:24:31 2014
@@ -103,7 +103,7 @@ mvn activemq-perf:producer -Dfactory.bro
]]></script>
</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 shape="rect" href="sample-report.html">sample report</a></p><h3
id="ActiveMQPerformanceModuleUsersManual-Mavengoals">Maven goals</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Goal</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>activemq-perf:broker</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Starts broker using the
activemq configuration file located in "src\main\resources\broker-conf" where
the default config is activemq.xml. <br clear="none"
class="atl-forced-newline"> Parameters: <br clear="none"
class="atl-forced-newline">  1. -DconfigType - specifies the ty
pe of configuration to use. Its value must be one of the filename in the
"..\broker-config" directory (e.g. -DconfigType=kaha). <br clear="none"
class="atl-forced-newline">  2. -DconfigFile - path to config file other
than those in "src\..\broker-config".e.g
-DconfigFile=c:\dir\activemq.xml)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>activemq-perf:consumer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Starts the consumer's performance testing.
The generated report file can be found in the directory specified in the
parameter "sysTest.reportDir".</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>activemq-perf:producer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Starts the producer's performance testing.
The generated report file can be found in the directory specified in the
parameter
"sysTest.reportDir".</p></td></tr></tbody></table></div><p><sup>1</sup>
<strong>Note</strong>:The parameters for both cons
umer and producers are described in the next section. (<a shape="rect"
href="sample-report.html">sample report</a>)</p><h3
id="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningasystemofJMSClients(Producer/Consumer)">Configuration
for running a system of JMS Clients (Producer/Consumer)</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Configuration Key</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.propsConfigFile</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Use properties specified externally in a key=value
properties file</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.clientPrefix</p></td><td colspan="1"
rowspan="1" cla
ss="confluenceTd"><p>JmsConsumer or JmsProducer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>sysTest.numClients</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specifies the number of JMS Clients to
start.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.totalDests</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specifies the total number of destinations to use for
the whole system test.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.destDistro</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>all</p></td><td colspan="1" rowspan=
"1" class="confluenceTd"><p>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>:</p><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 colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.reportDir</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>./</p></td><td col
span="1" rowspan="1" class="confluenceTd"><p>The directory where the sampler
report will be saved.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.reportName</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.reportType</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>xml</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specifies the manner of generating the perfo
rmance report. Available values are:</p><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 colspan="1"
rowspan="1" class="confluenceTd"><p>sysTest.samplers</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>tp,cpu</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specifies the samplers that will be started. To use
enable more than one sampler, separate the values by commas without spaces.
Available values are:</p><ul><li>'tp' - Throughput sampler</li><li>'cpu' - CPU
Usage sampler</li></ul></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>sysTest.spiClass</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI<
/p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The service
provider interface class that allows the client to create a generic connection
factory. Current available SPI classes
include:</p><ol><li>'org.apache.activemq.tool.ActiveMQPojoSPI'</li><li>'org.apache.activemq.tool.ActiveMQClassLoaderSPI'</li></ol></td></tr></tbody></table></div><p><sup>1</sup>
<strong>Note</strong>: 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
id="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningaJMSProducer">Configuration
for running a JMS Producer<
/h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Configuration Key</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th
colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>producer.sessTransacted</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Specifies if the session created will be
transacted or not. See the JMS Specifications for more
details.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>producer.sessAckMode</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>autoAck</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specified the acknowledge mode of the session. See the
JMS Specifications for more details. Available values are:</p><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 colspan="1" rowspan="1"
>class="confluenceTd"><p>producer.commitAfterXMsgs</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>Commit transaction after the specified amount of
>messages. Only used in conjunction with a transacted JMS Session
>(producer.sessTransacted=true and
>producer.sessAckMode=transacted)</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>producer.destName</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>TEST.FOO</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>producer.destComposite</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>producer.deliveryMode</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>nonpersistent</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The message delivery mode that
will be used for each producer. Available values
are:</p><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
colspan="1" rowspan="1"
class="confluenceTd"><p>producer.messageSize</p></td><td colspan="1"
rowspan="1" class="con
fluenceTd"><p>1024 bytes</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The size of each text message to
send.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>producer.msgFileName</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If you want to send a fixed message from a particular
file. The file needs to be a text file. The entire content of the file will be
sent as message body. Specifying a file containing the message to be sent makes
the producer ignore the property producer.messageSize. Use relative or full
path. Example: -Dproducer.msgFileName=../message.xml</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>producer.createNewMsg</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>producer.sendDelay</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0 ms</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Pause producer for sendDelay milliseconds after each
message (allows producer throttling).</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>producer.sendType</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>time</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Send either time-based or message-count-based.
Available values are:</p><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 colspan="1"
rowspan="1" class="confluenceTd"><p>produc
er.sendCount</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>1000000 msgs <br clear="none"
class="atl-forced-newline"> (1 million)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If sendType=count, send this number of
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>producer.sendDuration</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>300000 ms <br clear="none"
class="atl-forced-newline"> (5 mins)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If sendType=time, send messages for this number of
milliseconds.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>producer.header</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>none</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specify message headers to be set on all messages.
Headers use name=value syntax and can be separated using ':'. More than one
header can be set on a single producer.header line, e.g. producer.he
ader="JMSType=car:MyHeader=MyValue" (no spaces). Only one producer.header line
is allowed!</p></td></tr></tbody></table></div><h3
id="ActiveMQPerformanceModuleUsersManual-ConfigurationforrunningaJMSConsumer">Configuration
for running a JMS Consumer</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>consumer.sessTransacted</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Specifies if the session created will be
transacted or not. See the JMS Specifications for more
details.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.sessAckMode</p></td><td colspan="1"
rowspan="1" class="confl
uenceTd"><p>autoAck</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specified the acknowledge mode of the session. See the
JMS Specifications for more details. Available values are:</p><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 colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.commitAfterXMsgs</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Commit transaction after the specified amount of
messages. Only used in conjunction with a transacted JMS Session
(consumer.sessTransacted=true and
consumer.sessAckMode=transacted)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.destName</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>TEST.FOO</p></td><td colspan="1" rowspan="1"
class="confluenceTd"
><p>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.</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>consumer.destComposite</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>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.</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>consumer.durable</p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>If true, create a durable subscriber,
>otherwise create a message consumer. See the JMS Specifications for more
>details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenc
eTd"><p>consumer.asyncRecv</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, asynchronously receive messages using the
onMessage() method, otherwise use the receive() method.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>consumer.recvDelay</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0 ms</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Pause consumer for recvDelay milliseconds
with each message (allows consumer throttling).</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>consumer.recvType</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>time</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Receive either time-based or
message-count-based. Available values are:</p><ol><li>'time' - keep receiving
messages until a specific time interval has elapsed.</li><li>'count' - keep
receiving until N messages has been rece
ived.</li></ol></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.recvCount</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>1000000 msgs <br clear="none"
class="atl-forced-newline"> (1 million)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If recvType=count, receive this much
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.recvDuration</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>300000 ms <br clear="none"
class="atl-forced-newline"> (5 mins)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If recvType=time, receive messages for this specific
time duration.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>consumer.messageSelector</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>none</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Specify <a shape="rect" class="external-link"
href="http://activemq.apache.org/selectors.html">mes
sage selector</a> for all consumers. E.g. consumer.messageSelector="MyHeader =
'MyValue' AND JMSType =
'car'"</p></td></tr></tbody></table></div><p><strong>Note</strong>: 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
id="ActiveMQPerformanceModuleUsersManual-ConfigurationforSPIConnectionFactory:org.apache.activemq.tool.spi.ActiveMQPojoSPI">Configuration
for SPI Connection Factory:
org.apache.activemq.tool.spi.ActiveMQPojoSPI</h3><p><strong>Description:</strong>
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><div
class="table-wrap"><table class="confluenceTabl
e"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>factory.brokerURL</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>tcp://localhost:61616</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The url of the broker the
client will connect to.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.userName</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Username on the connection to use.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>factory.password</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Password on the connection to u
se.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.clientID</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Client ID the connection will use. If none is
specified, it will be automatically generated.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>factory.asyncSend</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, asynchronously send
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.asyncDispatch</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, asynchronously dispatch
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.asyncSession</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1
" rowspan="1" class="confluenceTd"><p>If true, session will dispatch messages
asynchronously.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.closeTimeout</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>15000 ms</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>factory.copyMsgOnSend</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>If true, creates a copy of the message to
be sent.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.disableTimestamp</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, disable the setting of the
JMSTimestamp.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.deferObjSerial</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="conflu
enceTd"><p>If true, defer the serialization of message
objects.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.optimAck</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, optimizes the acknowledgement of
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.optimDispatch</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, optimizes the dispatching of
messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchQueue</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1000 messages</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Number of messages a queue consumer will
cache in RAM before processing it.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchTopic</p></td><td co
lspan="1" rowspan="1" class="confluenceTd"><p>32766 messages</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Number of messages a topic
consumer will cache in RAM before processing it.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.useCompression</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, compress message data.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.useRetroactive</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If true, make consumers
retroactive.</p></td></tr></tbody></table></div><h3
id="ActiveMQPerformanceModuleUsersManual-ConfigurationforSPIConnectionFactory:org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI">Configuration
for SPI Connection Factory:
org.apache.activemq.tool.spi.ActiveMQClassLoaderSPI</h3><p><strong>Description:</st
rong> 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 clear="none">
<code>factory.useAsyncSend=true</code>, which is equivalent to calling
<code>factory.setUseAsyncSend(true)</code></li></ol><ol><li>To set the queue
prefetch for ActiveMQConnectionFactory, use:<br clear="none">
<code>factory.prefetchPolicy.queuePrefetch=1</code>, which is equivalent to
calling
<code>factory.getPrefetchPolicy().setQueuePrefetch(1)</code></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><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>factory.prefetchPolicy.optimizeDurableTopicPrefetch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>1000</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchPolicy.durableTopicPrefetch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>100</p></td></tr><tr>
<td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.password</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchPolicy.queueBrowserPrefetch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>500</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.useCompression</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>factory.disableTimeStampsByDefault</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.optimizedMessageDispatch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.useRetroactiveConsumer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td cols
pan="1" rowspan="1"
class="confluenceTd"><p>factory.alwaysSessionAsync</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>factory.copyMessageOnSend</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchPolicy.topicPrefetch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>32766</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.useAsyncSend</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>factory.redeliveryPolicy.backOffMultiplier</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>5</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.prefetchPolicy.inputStreamPrefetch</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>100</p></td></tr><tr><td co
lspan="1" rowspan="1" class="confluenceTd"><p>factory.closeTimeout</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>15000</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>factory.userName</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.optimizeAcknowledge</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>factory.clientID</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>null</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>factory.objectMessageSerializationDefered</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>factory.asyncDispatch</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"
><p>factory.redeliveryPolicy.initialRedeliveryDelay</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>1000</p></td></tr><tr><td colspan="1"
>rowspan="1"
>class="confluenceTd"><p>factory.prefetchPolicy.queuePrefetch</p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p>1000</p></td></tr><tr><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p>factory.redeliveryPolicy.maximumRedeliveries</p></td><td
> colspan="1" rowspan="1" class="confluenceTd"><p>5</p></td></tr><tr><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p>factory.redeliveryPolicy.useCollisionAvoidance</p></td><td
> colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p>factory.prefetchPolicy.maximumPendingMessageLimit</p></td><td
> colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td></tr><tr><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p>factory.redeliveryPolicy.useExponentialBackOff</p></td><td
> colspan="1" rowspan="1" class="confluenceT
d"><p>false</p></td></tr></tbody></table></div><h3
id="ActiveMQPerformanceModuleUsersManual-Configurationforsamplers">Configuration
for samplers</h3><p>There are two samplers built into the perfomance test
tool. Both are configured with the same configuration keys, only prefixed with
different sampler names.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh">Sampler</th><th colspan="1" rowspan="1"
class="confluenceTh"><em>samplerName</em></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">Throughput Sampler</td><td colspan="1"
rowspan="1" class="confluenceTd">tpSampler</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CPU Sampler</td><td colspan="1" rowspan="1"
class="confluenceTd">cpuSampler</td></tr></tbody></table></div><p>For example,
it is possible to configure the two samplers differently for a single test run,
using the prefixes above as follows:</p><div class="code panel pdl" style="bor
der-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[mvn activemq-perf:producer
-DtpSampler.duration=10000 -DcpuSampler.duration=15000]]></script>
-</div></div><p>By default, both samplers are used within a test run. This
however, can be overridden through the use of the <code>sysTest.samplers</code>
property.</p><h4
id="ActiveMQPerformanceModuleUsersManual-BeforeActiveMQ2.11">Before ActiveMQ
2.11</h4><p>Sampler configurations are not tied in to the test run, so it is
possible for the sampler to run for longer than the actual test itself. For
short run durations, the sampler may not even have ramped up before the test
completes.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.duration</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>300000</p></td><td colspan="1"
rowspan="1" class="confluenceTd">
<p>The total duration (in ms) the sampler will run, including ramp up and ramp
down time.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampUpTime</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The ramp up time of the sampler, sampling will only
start after the ramp up time.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampDownTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The ramp down time of the sampler, sampling
will stop when the sampler has executed for (duration - rampUpTime -
rampDownTime) ms.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.interval</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The interval (
in ms), the sampler will sample for
data.</p></td></tr></tbody></table></div><h4
id="ActiveMQPerformanceModuleUsersManual-FromActiveMQ2.11">From ActiveMQ
2.11</h4><p>Sampler run duration is tied directly to the behavior of the client
(producer/consumer). Due to the non-deterministic nature of count-based tests
(where consumer.recvType or producer.sendType are set to <code>count</code>),
duration, ramp up and ramp down times are ignored; the samplers are shut down
when the client completes.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.duration</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>For time-based tests, matches
the consumer or producer dur
ation.</p><p><em>Ignored for count-based tests.</em></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The total duration (in ms) the sampler will
run, including ramp up and ramp down time.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.rampUpTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null; defers to
rampUpPercent.</p><p><em>Ignored for count-based tests.</em></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The ramp up time of the
sampler, sampling will only start after the ramp up time.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampDownTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null; defers to
rampDownPercent.</p><p><em>Ignored for count-based tests.</em></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The ramp down time of the
sampler, sampling will stop when the sampler has executed for (duration -
rampUpTime - ra
mpDownTime) ms.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><em>samplerName</em>.rampUpPercent</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p><p><em>Ignored for count-based
tests.</em></p></td><td colspan="1" rowspan="1" class="confluenceTd">The
percentage of the overall run duration that the sampler should use to ramp up
(0-100). Overridden by rampUpTime.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><em>samplerName</em>.rampDownPercent</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p><p><em>Ignored for count-based
tests.</em></p></td><td colspan="1" rowspan="1" class="confluenceTd">The
percentage of the overall run duration that the sampler should use to ramp down
(0-99). Overridden by rampDownTime.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.interval</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Th
e interval (in ms), the sampler will sample for
data.</p></td></tr></tbody></table></div><p>The time taken to ramp up and ramp
down, whether defined through milliseconds or as a percentage cannot exceed the
total duration.</p></div>
+</div></div><p>By default, both samplers are used within a test run. This
however, can be overridden through the use of the <code>sysTest.samplers</code>
property.</p><h4
id="ActiveMQPerformanceModuleUsersManual-BeforeActiveMQ5.11">Before ActiveMQ
5.11</h4><p>Sampler configurations are not tied in to the test run, so it is
possible for the sampler to run for longer than the actual test itself. For
short run durations, the sampler may not even have ramped up before the test
completes.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.duration</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>300000</p></td><td colspan="1"
rowspan="1" class="confluenceTd">
<p>The total duration (in ms) the sampler will run, including ramp up and ramp
down time.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampUpTime</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The ramp up time of the sampler, sampling will only
start after the ramp up time.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampDownTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The ramp down time of the sampler, sampling
will stop when the sampler has executed for (duration - rampUpTime -
rampDownTime) ms.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.interval</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The interval (
in ms), the sampler will sample for
data.</p></td></tr></tbody></table></div><h4
id="ActiveMQPerformanceModuleUsersManual-FromActiveMQ5.11">From ActiveMQ
5.11</h4><p>Sampler run duration is tied directly to the behavior of the client
(producer/consumer). Due to the non-deterministic nature of count-based tests
(where consumer.recvType or producer.sendType are set to <code>count</code>),
duration, ramp up and ramp down times are ignored; the samplers are shut down
when the client completes.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Configuration Key</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.duration</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>For time-based tests, matches
the consumer or producer dur
ation.</p><p><em>Ignored for count-based tests.</em></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The total duration (in ms) the sampler will
run, including ramp up and ramp down time.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><em>samplerName</em>.rampUpTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null; defers to
rampUpPercent.</p><p><em>Ignored for count-based tests.</em></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The ramp up time of the
sampler, sampling will only start after the ramp up time.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.rampDownTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null; defers to
rampDownPercent.</p><p><em>Ignored for count-based tests.</em></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The ramp down time of the
sampler, sampling will stop when the sampler has executed for (duration -
rampUpTime - ra
mpDownTime) ms.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><em>samplerName</em>.rampUpPercent</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p><p><em>Ignored for count-based
tests.</em></p></td><td colspan="1" rowspan="1" class="confluenceTd">The
percentage of the overall run duration that the sampler should use to ramp up
(0-100). Overridden by rampUpTime.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><em>samplerName</em>.rampDownPercent</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p><p><em>Ignored for count-based
tests.</em></p></td><td colspan="1" rowspan="1" class="confluenceTd">The
percentage of the overall run duration that the sampler should use to ramp down
(0-99). Overridden by rampDownTime.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><em>samplerName</em>.interval</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Th
e interval (in ms), the sampler will sample for
data.</p></td></tr></tbody></table></div><p>The time taken to ramp up and ramp
down, whether defined through milliseconds or as a percentage cannot exceed the
total duration.</p></div>
</td>
<td valign="top">
<div class="navigation">
Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.