summaryrefslogtreecommitdiff
path: root/qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2016-07-05 21:55:35 +0000
committerRobert Gemmell <robbie@apache.org>2016-07-05 21:55:35 +0000
commitf160cb6566c17945f7ebc4f3a752b2cc6a051685 (patch)
tree809f04fc1967c22e5abc52de07602555bed0e920 /qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml
parentebb276cca41582b73223b55eff9f2d4386f4f746 (diff)
downloadqpid-python-f160cb6566c17945f7ebc4f3a752b2cc6a051685.tar.gz
QPID-7207: remove cpp and python subdirs from svn trunk, they have migrated to their own git repositories
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1751566 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml')
-rw-r--r--qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml163
1 files changed, 0 insertions, 163 deletions
diff --git a/qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml b/qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml
deleted file mode 100644
index 0ec6982bac..0000000000
--- a/qpid/cpp/docs/book/src/programming/Message-Groups-Guide.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<section id="Message-Groups-Guide">
- <title>Using Message Groups</title>
- <para>
- This section describes how messaging applications can use the Message Group feature
- provided by the Broker.
- </para>
- <note>
- The content of this section assumes the reader is familiar with the Message Group
- feature as described in the AMQP Messaging Broker user's guide. Please read the
- message grouping section in the Broker user's guide before using the
- examples given in this section.
- </note>
- <section role="h2" id="messagegroups-setup">
- <title>Creating Message Group Queues</title>
- <para>
- The following examples show how to create a message group queue that enforces
- ordered group consumption across multiple consumers.
- </para>
- <example>
- <title>Message Group Queue Creation - Python</title>
- <programlisting lang="python">
-sender = connection.session().sender("msg-group-q;" +
- " {create:always, delete:receiver," +
- " node: {x-declare: {arguments:" +
- " {'qpid.group_header_key':'THE-GROUP'," +
- " 'qpid.shared_msg_group':1}}}}")
- </programlisting>
- </example>
- <example>
- <title>Message Group Queue Creation - C++</title>
- <programlisting lang="c++">
-std::string addr("msg-group-q; "
- " {create:always, delete:receiver,"
- " node: {x-declare: {arguments:"
- " {qpid.group_header_key:'THE-GROUP',"
- " qpid.shared_msg_group:1}}}}");
-Sender sender = session.createSender(addr);
- </programlisting>
- </example>
- <example>
- <title>Message Group Queue Creation - Java</title>
- <programlisting lang="java">
-Session s = c.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-String addr = "msg-group-q; {create:always, delete:receiver," +
- " node: {x-declare: {arguments:" +
- " {'qpid.group_header_key':'THE-GROUP'," +
- " 'qpid.shared_msg_group':1}}}}";
-Destination d = (Destination) new AMQAnyDestination(addr);
-MessageProducer sender = s.createProducer(d);
- </programlisting>
- </example>
- <para>
- The example code uses the x-declare map to specify the message group configuration
- that should be used for the queue. See the AMQP Messaging Broker user's guide
- for a detailed description of these arguments. Note that the
- qpid.group_header_key's value MUST be a string type if using the C++ broker.
- </para>
- </section>
- <section role="h2" id="messagegroups-sending">
- <title>Sending Grouped Messages</title>
- <para>
- When sending grouped messages, the client must add a message property containing the
- group identifier to the outgoing message. If using the C++ broker, the group identifier
- must be a string type. The key used for the property must exactly match the value passed in the
- 'qpid.group_header_key' configuration argument.
- </para>
- <example>
- <title>Sending Grouped Messages - Python</title>
- <programlisting lang="python">
-group = "A"
-m = Message(content="some data", properties={"THE-GROUP": group})
-sender.send(m)
-
-group = "B"
-m = Message(content="some other group's data", properties={"THE-GROUP": group})
-sender.send(m)
-
-group = "A"
-m = Message(content="more data for group 'A'", properties={"THE-GROUP": group})
-sender.send(m)
- </programlisting>
- </example>
- <example>
- <title>Sending Grouped Messages - C++</title>
- <programlisting lang="C++">
-
-const std::string groupKey("THE-GROUP");
-{
- Message msg("some data");
- msg.getProperties()[groupKey] = std::string("A");
- sender.send(msg);
-}
-{
- Message msg("some other group's data");
- msg.getProperties()[groupKey] = std::string("B");
- sender.send(msg);
-}
-{
- Message msg("more data for group 'A'");
- msg.getProperties()[groupKey] = std::string("A");
- sender.send(msg);
-}
- </programlisting>
- </example>
- <example>
- <title>Sending Grouped Messages - Java</title>
- <programlisting lang="java">
-String groupKey = "THE-GROUP";
-
-TextMessage tmsg1 = s.createTextMessage("some data");
-tmsg1.setStringProperty(groupKey, "A");
-sender.send(tmsg1);
-
-TextMessage tmsg2 = s.createTextMessage("some other group's data");
-tmsg2.setStringProperty(groupKey, "B");
-sender.send(tmsg2);
-
-TextMessage tmsg3 = s.createTextMessage("more data for group 'A'");
-tmsg3.setStringProperty(groupKey, "A");
-sender.send(tmsg3);
- </programlisting>
- </example>
- <para>
- The examples above send two groups worth of messages to the queue created in the
- previous example. Two messages belong to group "A", and one belongs to group
- "B". Note that it is not necessary to complete sending one group's messages before
- starting another. Also note that there is no need to indicate to the broker when a
- new group is created or an existing group retired - the broker tracks group state
- automatically.
- </para>
- </section>
- <section role="h2" id="messagegroups-receiving">
- <title>Receiving Grouped Messages</title>
- <para>
- Since the broker enforces group policy when delivering messages, no special actions
- are necessary for receiving grouped messages from the broker. However, applications
- must adhere to the rules for message group consumption as described in the AMQP
- Messaging Broker user's guide.
- </para>
- </section>
-</section>