[jboss-cvs] JBoss Messaging SVN: r4361 - in trunk/docs/userguide/en: modules and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri May 30 17:04:30 EDT 2008


Author: timfox
Date: 2008-05-30 17:04:29 -0400 (Fri, 30 May 2008)
New Revision: 4361

Modified:
   trunk/docs/userguide/en/master.xml
   trunk/docs/userguide/en/modules/about.xml
   trunk/docs/userguide/en/modules/configuration.xml
   trunk/docs/userguide/en/modules/installation.xml
   trunk/docs/userguide/en/modules/introduction.xml
   trunk/docs/userguide/en/modules/journal.xml
   trunk/docs/userguide/en/modules/performance.xml
   trunk/docs/userguide/en/modules/runningexamples.xml
Log:
Docs


Modified: trunk/docs/userguide/en/master.xml
===================================================================
--- trunk/docs/userguide/en/master.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/master.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -15,7 +15,7 @@
    <bookinfo>
       <title>JBoss Messaging 2.0 User's Guide</title>
 
-      <subtitle>Enterprise Messaging from JBoss</subtitle>
+      <subtitle>High Performance Messaging from JBoss</subtitle>
 
    </bookinfo>
 

Modified: trunk/docs/userguide/en/modules/about.xml
===================================================================
--- trunk/docs/userguide/en/modules/about.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/about.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -1,17 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <chapter id="about">
    <title>About JBoss Messaging 2.0</title>
-   <para>JBoss Messaging 2.0 is the new generation of JBoss' flagship messaging project</para>
-   <para>JBM 2.0's elegant new POJO-based design and re-factored core allows it to run in JBoss Micro-container as well as being embeddable in your own applications. It also contains a new optimised persistence model that removes the database as a point of contention in the architecture and promises lightning-fast scalable persistence while retaining high availability.
-   We also have a completely new NIO based transport using Apache MINA.</para>
-   <para> The goal of JBM 2.0 is simple and uncompromising- to bring unrivalled levels of performance and reliability to messaging, and to
-	   become the fastest, best featured and most scalable messaging system in the open source space</para>
-   <para>But enough marketing rhetoric!. We are not in the business of making empty statements with respect to performance so we ship this release with a set of basic performance measurements against competing messaging systems in the open source space, so you can decide for yourslef. All performance results are fully reproducible by you, using the tools shipped with this distribution.
+   <para>The goal of JBM 2.0 is simple and uncompromising- to bring unrivalled levels of performance and reliability to messaging, and to be the fastest, best featured and most scalable open source messaging system.</para>
+   <para>But enough marketing rhetoric! Unlike some other systems, we are not in the business of making vacuous statements about performance so we ship this release with a set of basic performance measurements against other open source messaging systems, so you can decide for yourself. All performance results are fully reproducible by you, using the tools shipped with this distribution, so there is nothing to hide. Let the facts speak for themselves. If you can't wait, the performance results are <link linkend="performance">here</link>.
    </para>
-   <para>The procedure of installing and configuring JBoss Messaging is detailed in this guide, along with a set of
+   <para>The procedure of installing and configuring JBoss Messaging 2.0 is detailed in this guide, along with a set of
       runnable examples. This guide will be extended, before the general availability release of JBoss Messaging 2.0
    </para>
-   <para>Team: Tim Fox (Project Lead), Jeff Mesnil (Core Developer),
-      Andy Taylor (Core Developer), Clebert Suconic (Core Developer)
+   <para>And remember, this is an alpha, technology-preview release! Even though at this early stage we are already showing performance that leaves other production messaging systems in the dust, this release is not designed for production use.</para>
+   <para>Enjoy!</para>
+   <para>Permanent team: Tim Fox (Lead), Jeff Mesnil,  Andy Taylor, Clebert Suconic
    </para>
 </chapter>
\ No newline at end of file

Modified: trunk/docs/userguide/en/modules/configuration.xml
===================================================================
--- trunk/docs/userguide/en/modules/configuration.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/configuration.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -1,17 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <chapter id="configuration">
    <title>Configuration</title>
-   <para>The JMS API specifies how a messaging client interacts with a
-      messaging server. The exact definition and implementation of messaging
-      services, such as message destinations, connection factories and security, are
-      specific to JMS providers. JBoss Messaging has its own configuration files
-      to configure these.
-   </para>
-   <para>In this chapter, we discuss how to configure JBoss Messaging to provide JMS API level
-      services to client applications.
-   </para>
-   <para>JBoss Messaging configuration is spread among several
-      configuration files:
+   <para>In this chapter, we discuss how to configure JBoss Messaging</para>
+   <para>JBoss Messaging configuration is spread among several configuration files:
       <itemizedlist>
          <listitem>
             <filename>jbm-configuration.xml</filename>
@@ -155,10 +146,6 @@
       <para>The available configuration attributes are:</para>
       <itemizedlist>
          <listitem>
-            <para>clustered</para>
-            <para>Whether or not this server is clustered, currently disabled</para>
-         </listitem>
-         <listitem>
             <para>scheduled-executor-max-pool-size</para>
             <para>The maximum number of threads available for scheduling delivery of scheduled messages</para>
          </listitem>
@@ -302,10 +289,8 @@
       <title>jbm-security.xml</title>
       <para>This configuration file is used to configure users and roles when JBM is running in standalone mode using
          the JBM Security Manager. The Security manager used is a pluggable component whose implementation can be
-         changed by
-         configuring the appropriate beans configuration file. Refer to the beans configuration section on how to do
-         this.
-         A typical jbm-security.xml config looks like:
+         changed by  configuring the appropriate beans configuration file. Refer to the beans configuration section on how to do
+         this. A typical jbm-security.xml config looks like:
       </para>
       <programlisting>
          <![CDATA[
@@ -508,7 +493,7 @@
    <section id="configuration.jms">
       <title>jbm-jndi.xml</title>
       <para>This configuration file is used to create destinations and Connection Factories and make them available in
-         JNDI. Note that this is the only configuration file that exposes JMS functionality.
+         JNDI. Note that this is the only configuration file that exposes JMS functionality, the rest of the configuration is 100% JMS agnostic.
       </para>
       <para>
          A typical jbm-jndi.xml config looks like:

Modified: trunk/docs/userguide/en/modules/installation.xml
===================================================================
--- trunk/docs/userguide/en/modules/installation.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/installation.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <chapter id="installation">
    <title>JBoss Messaging Installation</title>
-   <para>This section describes the prerequisites and procedures to install JBoss Messaging.
+   <para>This section describes how to install JBoss Messaging 2.0.
    </para>
 
    <section id="installation.prerequisites">
       <title>Prerequisites</title>
-      <para><note>JBoss Messaging only runs with Java 5 or later.</note></para>
+      <para><note>JBoss Messaging only runs with Java 5 or later. We recommend Java 6 for the best performance.</note></para>
       <para>By default, JBoss Messaging server is run with 1GB of memory. If your computer has less memory, 
       modify the value in <literal>bin/run.sh</literal> accordingly.</para>
       <para><ulink url="http://ant.apache.org/">Ant</ulink> is required to build and run the examples.</para>

Modified: trunk/docs/userguide/en/modules/introduction.xml
===================================================================
--- trunk/docs/userguide/en/modules/introduction.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/introduction.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -30,7 +30,7 @@
          <listitem>
             <para>Class beating, ultra high performance journal based persistence</para>
             <para>We have designed and implemented a fast append only journal which  handles the persistence for JBoss Messaging 2.0. The journal is written 95% in Java for portability, and can run in one of two modes:</para>
-	    <para>a) Using pure Java NIO. This provides great performance and runs on any operating system ther JVM runs on.</para>
+	    <para>a) Using pure Java NIO. This provides great performance and runs on any operating system the JVM runs on.</para>
 	    <para>b) Using Linux asynchronous IO (aio). This provides even better performance, impossible via Java alone. This is implemented via a thin C++ layer which the journal tasks to via JNI. This option is only available when running on Linux</para>
          </listitem>
 

Modified: trunk/docs/userguide/en/modules/journal.xml
===================================================================
--- trunk/docs/userguide/en/modules/journal.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/journal.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -4,25 +4,23 @@
    <section id="journal.asyncio">
       <title>ASYNCIO</title>
       <para>If you are using JBoss Messaging 2 on a Linux system, you can take full advantage of this feature. All you
-         have to do is to make sure libaio is installed and you are using ext3 or ext2 or newer kernels.
+         have to do is to make sure libaio is installed and you are using an ext3 or ext2 file system, and kernel version 2.6 or later.
       </para>
       <para>To install libaio, run the command <literal>sudo yum install libaio1</literal> on Fedora or Red Hat or <literal>sudo
          apt-get install libaio1</literal> on Ubuntu or Debian. For other OS's refer to the OS manual.
       </para>
-      <para>Instead of synchronizing the whole disk on every commit required by the journal, We submit writes directly
+      <para>Using ther JBoss Messaging journal we provide unrivalled persistence performance. Instead of issuing a sync on every commit required by the journal, we submit writes directly
          to the kernel and we get callbacks when the information is stored on the hard drive. With that
-         we maximize performance by isolating the persistnce of one transaction from another and also by using Direct
+         we maximize performance by isolating the persistence of one transaction from another and also by using Direct
          Memory Access between the Journal and the Kernel. With AIO you can have high rate transactions even when you
-         commit several small transactions.
+         commit several small transactions, and that's done without any loss of the reliability guarantee - your data is 100% guaranteed persisted to disk.
          We are planning migrating this native library to other platforms besides Linux, as other OS's will have
          different options for Asynchronous IO.
       </para>
    </section>
    <section id="journal.nio">
       <title>NIO</title>
-      <para>If AIO is not available JBM will fall back to using NIO.</para>
-      <para>Both NIO and AIO journals share a lot of its implementation at an abstract level and we have verified that
-         even our Journal using NIO will perform well.
+      <para>If AIO is not available JBM will automatically fall back to using NIO. Both NIO and AIO journals share a lot of its implementation at an abstract level, and the NIO journal also gives excellent performance.
       </para>
    </section>
    <section id="journal.jdbc">
@@ -30,8 +28,7 @@
       <para>JDBC mapping is not supported for the Alpha release of JBoss Messaging 2.</para>
       <para>It is planned for the Beta release for users that require a database for management purposes.
          JDBC access will be optimized but it is not expected to reach the same level of performance for persistent 
-         messages than the ASYNCIO and NIO implementations as a relational database is not designed to meet the requirements
-         of a Messaging System.
+         messages than the ASYNCIO and NIO implementations.
       </para>
    </section>
 </chapter>
\ No newline at end of file

Modified: trunk/docs/userguide/en/modules/performance.xml
===================================================================
--- trunk/docs/userguide/en/modules/performance.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/performance.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -1,97 +1,127 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <chapter id="performance">
-  <title>Performance</title>
+  <title>Performance Tests</title>
 
   <section id="performance.running">
     <title>How to execute our performance tests</title>
 
-    <para>We have tested JBoss Messaging 2, and we have used the same tests against other systems. 
+    <para>JBoss Messaging 2.0 ships with a set of basic performance measurements comparing our performance against a selection of other open source messaging systems. We would like to provide performance figures against proprietary systems too, but unfortunately, this is usually prohibited by the other messaging systems licence terms</para>
+    <note>
+    <para>It should be stressed that this performance figures are far from exhaustive and provide a very basic feeling for how JBoss Messaging 2.0 performs against the other systems in a selection of simple and classic JMS use cases. All the tests use the standard JMS API. Please remember JBoss Messaging is only an alpha release so don't expect this release to be perfect in all scenarios, although it is interesting to observe that even at this early stage JBoss Messaging appears to provide better performance that the other messaging systems. JBM 2.0 is still largely un-optimised - we have more performance to squeeze out still. More in depth performance figures will be provided for the final GA release.</para>
+    </note>
+    <para>In the spirit of open-ness and not wanting to make performance claims we cannot substantiate, all these performance figures can easily be reproduced using just the tools available in this distribution, assuming you have installed the other messaging systems.
     We have used the <link linkend="examples">JMS Examples</link> to
     produce these numbers, and we used perfSender and perfListener with
-    different scenarios. You can replicate those scenarios using these instructions provided bellow</para>
+    different scenarios. You can replicate those scenarios using these instructions provided below:</para>
 
+    <para>All messages used in the tests are BytesMessages with 1K bodies. Measurement time is taken from the time of the first message sent after the warmup period to the time of the last message consumed. Message throughput rates are measured in messages / sec. In most tests 200000 messages were sent, although this was reduced with some providers due to the provider running out of memory. In all tests we first start a consumer listening on the queue, then start a producer sending to the queue. Broker was running on the server machine, and both the producer and the consumer were running on the client machine.</para>
+    
+    <para>The tests were performed on very basic commodity hardware. In the near future we will be obtaining the use of a large performance lab with serious hardware, on which we look forward to obtaining more results</para>
+    
     <itemizedlist>
       <listitem>
-        <para>1. Send non persistent, non tx, consume dups_ok </para>
-        <para>ant perfListener</para>
-        <para>ant perfSender</para>
+        <para>Test 1. Send non persistent, non transactional messages. Consume messages non transactional with ack mode DUPS_OK_ACKNOWLEDGE</para>
+	<programlisting>
+           <para>ant perfListener</para>
+           <para>ant perfSender</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>2. Send non persistent, non tx, consume dups_ok </para>
-        <para>ant -Dsess.ackmode=AUTO_ACK perfListener</para>
-        <para>ant perfSender</para>
+        <para>Test 2. Send non persistent, non transactional, messages. Consume mesages non transactional with ack mode AUTO_ACKNOWLEDGE</para>
+	<programlisting>
+	   <para>ant perfListener -Dsess.ackmode=AUTO_ACK</para>
+           <para>ant perfSender</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>3. Send persistent (blocking *), non tx, consume dups_ok</para>
-        <para>ant perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT perfSender </para>
+	<para>Test 3. Send persistent (blocking *) non transactional, messages. Consume with ack mode DUPS_OK_ACKNOWLEDGE</para>
+	<programlisting>
+           <para>ant perfListener</para>
+	   <para>ant perfSender -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>4. Send persistent (non blocking *), non tx, consume dups_ok</para>
-        <para>ant perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT perfSender </para>
+	<para>Test 4. Send persistent (non blocking *), non transactional, messages. Consume with ack mode DUPS_OK_ACKNOWLEDGE</para>
+	<programlisting>
+           <para>ant perfListener</para>
+	   <para>ant perfSender -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>5. Send persistent (blocking *), non tx, consume auto_ack</para>
-        <para>ant -Dsess.ackmode=AUTO_ACK perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT perfSender </para>
+	<para>Test 5. Send persistent (blocking *), non transactional, messages. Consume with ack mode AUTO_ACKNOWLEDGE</para>
+	<programlisting>
+	   <para>ant perfListener -Dsess.ackmode=AUTO_ACK</para>
+	   <para>ant perfSender -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>6. Send persistent (non blocking *), non tx, consume auto_ack</para>
-        <para>ant -Dsess.ackmode=AUTO_ACK perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT perfSender </para>
+	<para>Test 6. Send persistent (non blocking *), non transactional, messages. Consume with ack mode AUTO_ACKNOWLEDGE</para>
+	<programlisting>
+	   <para>ant perfListener -Dsess.ackmode=AUTO_ACK</para>
+	   <para>ant perfSender -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>7. Send persistent, transactional, transaction size = 1000, consume persistent transactional, transaction size = 1000 </para>
-        <para>ant -Dssess.trans=true  perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT -Dsess.trans=true perfSender </para>
+        <para>Test 7. Large transaction test. Send persistent, transactional, messages with transaction size = 1000. Consume persistent transactional, transaction size = 1000</para>
+	<programlisting>
+	   <para>ant perfListener -Dsess.trans=true -Dsess.trans.size=1000</para>
+	   <para>ant perfSender -Dsess.trans=true -Dsess.trans.size=1000 -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
       <listitem>
-        <para>8. Send persistent, transactional, transaction size = 2, consume persistent transactional, transaction size = 2 </para>
-        <para>ant -Dssess.trans=true  perfListener</para>
-        <para>ant -Ddelivery.mode=PERSISTENT -Dsess.trans=true perfSender </para>
+        <para>Test 8. Small transaction test. Send persistent, transactional, messages with transaction size = 2. Consume persistent transactional, transaction size = 2</para>
+	<programlisting>
+           <para>ant perfListener -Dsess.trans=true -Dsess.trans.size=2</para>
+	   <para>ant perfSender -Dsess.trans=true -Dsess.trans.size=2 -Ddelivery.mode=PERSISTENT</para>
+        </programlisting>
       </listitem>
     </itemizedlist>
     
-    <para>* These blocking and non blocking modes are set on configurations and this will vary for each server</para>
+    <para>* Some messaging systems send persistent messages by default synchronously, and others send them by default asynchronously. Some supports both modes and others only support one. To avoid confusion we consider sending persistent messages synchronously or asynchronously separately. Configuring a particular system to send synchronously or asynchronously is specific to the system.</para>
 
   </section>
   
   <section id="performance.systemsUsed">
      <title>Systems Used</title>
-    <para>
-    To run the perfListener and perfSender on different servers you need to add the client libraries into Add the client libraries on messaging-2.0.0.alpha1/examples/jms/other-system-client-dir
-    and change jndi.properties to the system used according to the examples provided under messaging-2.0.0.alpha1/examples/jms/config.
-    </para>
+
+    <para>All the tests were executed on the same hardware, operating system and JDK configuration. All messaging system configuration was with out of the box defaults unless otherwise stated.</para>
     
-    <para>All the tests were executed on the same hardware:</para>
-    
     <itemizedlist>
       <listitem>
-        <para>Client</para>
-        <para>Dell Latitude D820, dual core, 2GB Ram, 1000Mb network</para>
-        <para>Linux system, 32 bit, </para>
+        <para>Client:</para>
+        <para>Hardware: Dell Latitude D820, dual core 2 x 2GHz Intel CoreDuo, 2GB RAM, 1GB ethernet card.</para>
+	<para>Operating system: Linux, 32 bit, kernel version 2.6.22-14-generic</para>
+	<para>JDK: Sun JDK 1.6.0_03-b05</para>
       </listitem>
       <listitem>
-        <para>Server</para>
-        <para>Dell Precision 470 workstation, dual cpu, dual</para>
+        <para>Server:</para>
+        <para>Dell Precision 470 workstation, dual cpu 2 X 2.8 GHz Intel Xeon 64 bit, 2GB RAM, 1GB ethernet card.</para>
+	<para>Operating system: Linux, 64 bit, kernel version 2.6.22-14-generic</para>
+	<para>JDK: Sun JDK 1.6.0_03-b05 64bit</para>
       </listitem>
+      <listitem>
+	<para>Network:</para>
+	<para>1 GB ethernet</para>
+	<para>Netgear GS105 Gigabit switch</para>
+      </listitem>      
     </itemizedlist>
+  </section>
+   <section>
     
-    <para>All the tests against these following systems:</para>
+    <para>All the tests were executed against these following systems:</para>
     
     <itemizedlist>
       <listitem>
-        <para>1. ActiveMQ 5.1</para>
+         <para>1. JBM 2.0 alpha. Out of the box config used.</para>
       </listitem>
       <listitem>
-        <para>2. JBM 2.0 alpha</para>
+        <para>2. ActiveMQ 5.1. This is the latest production version of ActiveMQ. Out of the box config was used with two changes: 1) syncOnWrite was set to true in the persistence config (otherwise ActiveMQ won't sync to disc on tx boundaries) 2) The upper queue memory limit was extended to 100MB otherwise the tests would block as queues became full.</para>
       </listitem>
       <listitem>
-        <para>3. QPID M2.1 Java version with BDB persistence manager, java client</para>
+        <para>3. Apache QPid M2.1 Java version with BDB store, Java JMS client. This is the latest production/stable version of Apache QPid. Out of the box config was used.</para>
       </listitem>
       <listitem>
-        <para>4. MRG Messaging 1.0 beta C++ version with java client</para>
+        <para>4. Red Hat MRG Messaging 1.0 C++ version with QPID Java JMS client. As recommended version was taken from trunk. SVN revisions are: Store 2093, QPID trunk 661704. This corresponds to MRG Messaging 1.0 after MRG Messaging 1.0 beta and just prior to MRG Messaging 1.0 GA. Out of the box config was used.</para>
       </listitem>
     </itemizedlist>
      
@@ -101,116 +131,116 @@
     <title>Performance Results</title>
 
     <table>
-      <title>Performance Results</title>
+      <title>Performance Results (all results in messages/sec)</title>
       <tgroup cols="5">
         <colspec align="center" />
 
         <thead>
           <row>
-            <entry align="left">Short Descr/Server</entry>
+            <entry align="left">Test</entry>
 
+	    <entry align="center">JBM 2.0 Alpha</entry>
+	    
             <entry align="center">Active MQ 5.1</entry>
 
-            <entry align="center">JBM 2.0 Alpha</entry>
-
             <entry align="center">QPID M2.1 Java</entry>
 
-            <entry align="center">MRG Messaging C++</entry>
+            <entry align="center">MRG Messaging 1.0 C++</entry>
           </row>
         </thead>
 
         <tbody>
           <row>
-            <entry align="left">1. NP/Dups</entry>
+            <entry align="left">Test 1. NP/Dups</entry>
 
+	    <entry align="center">18,836</entry>
+	    
             <entry align="center">12,963</entry>
-
-            <entry align="center">18,836</entry>
-
+            
             <entry align="center">4,619</entry>
 
             <entry align="center">6,790</entry>
           </row>
 
           <row>
-            <entry align="left">2. NP/AutoAck</entry>
+            <entry align="left">Test 2. NP/AutoAck</entry>
 
+	    <entry align="center">14,143</entry>
+	    
             <entry align="center">9,813</entry>
-
-            <entry align="center">14,143</entry>
-
+            
             <entry align="center">7,444</entry>
 
             <entry align="center">4,691</entry>
           </row>
-
+	  
           <row>
-            <entry align="left">3. Persist/Blocking/NonTX/DupsOk</entry>
+            <entry align="left">Test 3. Persist/Blocking/NonTX/DupsOk</entry>
 
+	    <entry align="center">1,372</entry>
+	    
             <entry align="center">312</entry>
+            
+            <entry align="center">QPid M2.1 does not support blocking persistent message sends</entry>
 
-            <entry align="center">1,372</entry>
-
-            <entry align="center">Not Supported</entry>
-
             <entry align="center">23</entry>
           </row>
 
           <row>
-            <entry align="left">4. Persist/Non Blocking/NonTX/DupsOk</entry>
+            <entry align="left">Test 4. Persist/Non Blocking/NonTX/DupsOk</entry>
 
-            <entry align="center">Not Supported</entry>
-
-            <entry align="center">14,977</entry>
-
+	    <entry align="center">14,977</entry>
+	    
+            <entry align="center">ActiveMQ 5.1 does not support non blocking persistent message sends</entry>
+            
             <entry align="center">319</entry>
 
             <entry align="center">6263</entry>
           </row>
 
           <row>
-            <entry align="left">5. Persist/Blocking/NonTX/AutoAck</entry>
+            <entry align="left">Test 5. Persist/Blocking/NonTX/AutoAck</entry>
 
+	    <entry align="center">1,265</entry>
+	    
             <entry align="center">524</entry>
+            
+	    <entry align="center">QPid M2.1 does not support blocking persistent message sends</entry>
 
-            <entry align="center">1,265</entry>
-
-            <entry align="center">Not Supported</entry>
-
             <entry align="center">23</entry>
           </row>
 
           <row>
-            <entry align="left">6. Persist/Non Blocking/NonTX/AutoAck</entry>
+            <entry align="left">Test 6. Persist/Non Blocking/NonTX/AutoAck</entry>
 
-            <entry align="center">Not Supported</entry>
-
-            <entry align="center">12,056</entry>
-
+	    <entry align="center">12,056</entry>
+	    
+	    <entry align="center">ActiveMQ 5.1 does not support non blocking persistent message sends</entry>
+            
             <entry align="center">318</entry>
 
             <entry align="center">7,886</entry>
           </row>
 
           <row>
-            <entry align="left">7. Persistent/Transacted size=1000</entry>
+            <entry align="left">Test 7. Large transactions. Persistent/Transacted size=1000</entry>
 
+	    <entry align="center">9,607</entry>
+	    
             <entry align="center">1,576</entry>
-
-            <entry align="center">9,607</entry>
-
+            
             <entry align="center">3,242</entry>
 
-            <entry align="center">Unable to complete</entry>
+            <entry align="center">Unable to complete. The broker failed at this transaction size</entry>
           </row>
 
           <row>
-            <entry align="left">8. Persistent/Transacted size=2</entry>
+            <entry align="left">Test 8. Small transactions. Persistent/Transacted size=2</entry>
 
+	    <entry align="center">1,818</entry>
+	    
             <entry align="center">396</entry>
-
-            <entry align="center">1,818</entry>
-
+            
             <entry align="center">475</entry>
 
             <entry align="center">147</entry>
@@ -220,4 +250,14 @@
       </tgroup>
     </table>
   </section>
+  
+  <section id="performance.conclusions">
+	  
+    <title>Performance conclusions.</title>
+    
+    <para>JBoss Messaging 2.0 provides the highest throughput in all tests</para>
+    <para>In particular JBoss Messaging's superb performance for persistence and transactions compared to the other systems is clear to see. This is due to our state of art journal. Our winning non persistent message results demonstrate the power of our new transport. And remember, this is just an alpha release!</para>    
+    
+  </section>
+  
 </chapter>
\ No newline at end of file

Modified: trunk/docs/userguide/en/modules/runningexamples.xml
===================================================================
--- trunk/docs/userguide/en/modules/runningexamples.xml	2008-05-30 20:36:56 UTC (rev 4360)
+++ trunk/docs/userguide/en/modules/runningexamples.xml	2008-05-30 21:04:29 UTC (rev 4361)
@@ -8,7 +8,8 @@
       <listitem>a set of JMS examples</listitem>
       <listitem>a set of non-JMS examples that demonstrate how to use the JBoss Messaging core API</listitem>
    </itemizedlist>
-   <para>It is highly recommended that you familiarize yourself with the
+   <para>The examples will be expanded on before JBoss Messaging 2.0 GA release</para>
+   <para>It is highly recommended that you familiarise yourself with the
       examples.
    </para>
    <para>Make sure you start JBoss Messaging before running the
@@ -69,14 +70,58 @@
             </para>
          </listitem>
          <listitem>
-            <para>perfListener</para>
-            <para>This example will run a basic performance test. This needs to be used in conjunction with the
-               perfSender example.
+            <para>perfSender</para>
+            <para>This example will run a basic performance test. It sends messages to a destination according to the specified parameters. This needs to be used in conjunction with the  perfListener example.
+		    The number of messages,  delivery mode etc can be configured as follows:
+		    <programlisting>
+			    ant -Dmessage.count=20000 -Ddelivery.mode=PERSISTENT perfSender
+               </programlisting>
             </para>
+	    
+	    <para>
+		The following parameters can be configured for the sender
+		<itemizedlist>
+			<listitem>
+				<para>message.count</para>
+				<para>The number of messages to send.</para>
+			</listitem>
+			<listitem>
+				<para>delivery.mode</para>
+				<para>The delivery mode to use, PERSISTENT or NON_PERSISTENT.</para>
+			</listitem>
+			<listitem>
+				<para>message.warmup.count</para>
+				<para>How many messages to warm up for. Because of the JIT compiler maximum throughput will take a
+					little
+					while to kick in.
+				</para>
+			</listitem>
+			<listitem>
+				<para>message.size</para>
+				<para>The size of message to send, in bytes</para>
+			</listitem>
+			<listitem>
+				<para>sess.trans</para>
+				<para>Whether or not the session is transacted.</para>
+			</listitem>
+			<listitem>
+				<para>sess.trans.size</para>
+				<para>If the session is transacted the batch size to commit.</para>
+			</listitem>
+			<listitem>
+				<para>queue.lookup</para>
+				<para>The name of the queue to use.</para>
+			</listitem>
+			<listitem>
+				<para>cf.lookup</para>
+				<para>The name of the connection factory to use.</para>
+			</listitem>
+		</itemizedlist>
+            </para>
          </listitem>
          <listitem>
-            <para>perfSender</para>
-            <para>This example will run a basic performance test. before running start the example and wait for it to
+            <para>perfListener</para>
+            <para>This example will run a basic performance test. It will consume messages from a destination according to the parameters specified. Before running start the example and wait for it to
                start, you will see
                <literal>READY!!!</literal>
                when the listener has started. The number of messages,
@@ -85,6 +130,7 @@
                   ant -Dmessage.count=20000 -Ddelivery.mode=PERSISTENT perfSender
                </programlisting>
             </para>
+	    
             <para>If running the sender and listener seperately make sure to run the listener with the parameter
                <literal>drain.queue</literal>
                set to false
@@ -94,13 +140,9 @@
                <itemizedlist>
                   <listitem>
                      <para>message.count</para>
-                     <para>The number of messages to send.</para>
+                     <para>The number of messages to consume.</para>
                   </listitem>
                   <listitem>
-                     <para>delivery.mode</para>
-                     <para>The delivery mode to use, PERSISTENT or NON_PERSISTENT.</para>
-                  </listitem>
-                  <listitem>
                      <para>message.warmup.count</para>
                      <para>How many messages to warm up for. Because of the JIT compiler maximum throughput will take a
                         little
@@ -108,10 +150,6 @@
                      </para>
                   </listitem>
                   <listitem>
-                     <para>message.size</para>
-                     <para>The size of message to send.</para>
-                  </listitem>
-                  <listitem>
                      <para>sess.trans</para>
                      <para>Whether or not the session is transacted.</para>
                   </listitem>




More information about the jboss-cvs-commits mailing list