Author: robbie
Date: Sat Jan 11 21:23:09 2014
New Revision: 1557468

URL: http://svn.apache.org/r1557468
Log:
QPID-5471: fix some incorrect/incomplete information in the java broker message 
grouping documentation

Modified:
    qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml

Modified: 
qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml?rev=1557468&r1=1557467&r2=1557468&view=diff
==============================================================================
--- qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml 
(original)
+++ qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml 
Sat Jan 11 21:23:09 2014
@@ -320,23 +320,40 @@ topicExchange.createNewBinding("queue", 
           to the same group. <emphasis>Consumption ordering</emphasis> means 
one of two things
           depending on how the queue has been configured.
             <itemizedlist>
-              <listitem>In default mode, each group is assigned to a consumer 
for
-              the lifetime of the consumer.</listitem>
-              <listitem>In C++ compatibility mode (which gives the same 
behaviour
-              as the C++ Qpid Broker), the Broker enforces a looser guarantee, 
nameley that all the
-              <emphasis>currently unacknowledged messages</emphasis> in a 
group will be sent to the
-              same consumer.  This means that only one consumer can be 
processing messages from a particular
-              group at a given time.  When the consumer acknowledges all of 
its acquired
-              messages, then the broker <emphasis>may</emphasis> pass the next 
pending message
-              from that group to a different consumer.</listitem>
+              <listitem>
+                In default mode, a group gets assigned to a single consumer for
+                the lifetime of that consumer, and the broker will pass all 
subsequent messages in
+                the group to that consumer.
+              </listitem>
+              <listitem>
+                In 'shared groups' mode (which gives the same behaviour
+                as the Qpid C++ Broker) the broker enforces a looser 
guarantee, namely that all the
+                <emphasis>currently unacknowledged messages</emphasis> in a 
group are sent to the
+                same consumer, but the consumer used may change over time even 
if the consumers do not.
+                This means that only one consumer can be processing messages 
from a particular group at
+                any given time, however if the consumer acknowledges all of 
its acquired messages then
+                the broker <emphasis>may</emphasis> pass the next pending 
message in that group to a
+                different consumer.
+              </listitem>
             </itemizedlist>
           </listitem>
         </itemizedlist>
       </para>
       <para>
-        The absence of a value in the designated header field for grouping as 
treated as indicative
-        of a lack of desire for the message to be grouped. Messages with such 
a lack of a value will
-        be distributed to any available consumer.
+        The absence of a value in the designated group header field of a 
message is treated as follows:
+        <itemizedlist>
+          <listitem>
+            In default mode, failure for a message to specify a group is 
treated as a desire for the message
+            not to be grouped at all. Such messages will be distributed to any 
available consumer, without
+            the ordering quarantees imposed by grouping.
+          </listitem>
+          <listitem>
+            In 'shared groups' mode (which gives the same behaviour as the 
Qpid C++ Broker) the broker assigns messages
+            without a group value to a 'default group'. Therefore, all such 
"unidentified" messages are considered by
+            the broker as part of the same group, which will handled like any 
other group. The name of
+            this default group is "qpid.no-group", although it can be 
customised as detailed below.
+          </listitem>
+        </itemizedlist>
       </para>
       <para>
         Note that message grouping has no effect on queue browsers.
@@ -395,13 +412,25 @@ topicExchange.createNewBinding("queue", 
                 <row>
                   <entry>qpid.shared_msg_group</entry>
                   <entry>Provide a value of "1" to switch on
-                  <link linkend="Java-Broker-Queues-OtherTypes-BrokerRole">C++ 
compatibility mode</link></entry>
+                  <link 
linkend="Java-Broker-Queues-OtherTypes-BrokerRole">'shared groups' 
mode</link>.</entry>
+                </row>
+                <row>
+                  <entry>qpid.default_msg_group</entry>
+                  <entry>The value to use as the default group when operating 
in
+                  <link 
linkend="Java-Broker-Queues-OtherTypes-BrokerRole">'shared groups' 
mode</link>.</entry>
                 </row>
               </tbody>
             </tgroup>
           </table>
       </para>
       <para>
+        The default group for groups operating in 'shared groups' mode can be 
updated broker-wide using a system property as follows,
+        however do note that the queue declaration argument detailed above 
takes precedence:
+      </para>
+      <para>
+        -Dqpid.broker_default-shared-message-group="your.default.shared.group"
+      </para>
+      <para>
         It is important to note that there is no need to provide the actual 
group
         identifer values that will be used. The broker learns these values as 
messages are
         received.  Also, there is no practical limit - aside from resource 
limitations -



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to