You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jo...@apache.org on 2010/06/24 20:50:25 UTC
svn commit: r957678 [3/11] - in /qpid/site/docs/books:
0.5/AMQP-Messaging-Broker-CPP-Book/html/
0.5/AMQP-Messaging-Broker-CPP-Book/pdf/
0.6/AMQP-Messaging-Broker-CPP-Book/html/
0.6/AMQP-Messaging-Broker-CPP-Book/pdf/
0.7/AMQP-Messaging-Broker-CPP-Book/...
Modified: qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02.html?rev=957678&r1=957677&r2=957678&view=diff
==============================================================================
--- qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02.html (original)
+++ qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02.html Thu Jun 24 18:50:21 2010
@@ -1,257 +1,449 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. AMQP compatibility</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="prev" href="ch01s09.html" title="9. ACL"><link rel="next" href="ch02s02.html" title="2. Interop table by AMQP specification version"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2.
- AMQP compatibility
- </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s09.html">Prev</a> </td><th width="60%" align="center">Chapter 1.
- Running the AMQP Messaging Broker
- </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 2. AMQP compatibility"><div class="titlepage"><div><div><h2 class="title"><a name="AMQP-Compatibility"></a>Chapter 2.
- AMQP compatibility
- </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch02.html#AMQPcompatibility-AMQPCompatibilityofQpidreleases-3A">1.
- AMQP
- Compatibility of Qpid releases:
- </a></span></dt><dt><span class="section"><a href="ch02s02.html">2.
- Interop
- table by AMQP specification version
- </a></span></dt></dl></div><p>
- Qpid provides the most complete and compatible implementation
- of AMQP. And is the most aggressive in implementing the latest
- version of the specification.
- </p><p>
- There are two brokers:
- </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>C++ with support for AMQP 0-10</p></li><li class="listitem"><p>Java with support for AMQP 0-8 and 0-9 (0-10 planned)</p></li></ul></div><p>
- There are client libraries for C++, Java (JMS), .Net (written in
- C#), python and ruby.
- </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>All clients support 0-10 and interoperate with the C++
- broker.
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The JMS client supports 0-8, 0-9 and 0-10 and interoperates
- with both brokers.
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The python and ruby clients will also support all versions,
- but the API is dynamically driven by the specification used and
- so differs between versions. To work with the Java broker you
- must use 0-8 or 0-9, to work with the C++ broker you must use
- 0-10.
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>There are two separate C# clients, one for 0-8 that
- interoperates with the Java broker, one for 0-10 that
- inteoperates with the C++ broker.
- </p></li></ul></div><p>
- QMF Management is supported in Ruby, Python, C++, and via QMan
- for Java JMX & WS-DM.
- </p><div class="section" title="1. AMQP Compatibility of Qpid releases:"><div class="titlepage"><div><div><h3 class="title"><a name="AMQPcompatibility-AMQPCompatibilityofQpidreleases-3A"></a>1.
- AMQP
- Compatibility of Qpid releases:
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. Managing the AMQP Messaging Broker</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="prev" href="ch01s11.html" title="1.11. Qpid Interoperability Documentation"><link rel="next" href="ch02s02.html" title="2.2. Qpid Management Framework"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2.
+ Managing the AMQP Messaging Broker
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s11.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 2. Managing the AMQP Messaging Broker"><div class="titlepage"><div><div><h2 class="title"><a name="chapter-Managing-CPP-Broker"></a>Chapter 2.
+ Managing the AMQP Messaging Broker
+ </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch02.html#section-Managing-CPP-Broker">2.1. Managing the C++ Broker </a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#MgmtC-2B-2B-Usingqpidconfig">2.1.1.
+ Using qpid-config
+ </a></span></dt><dt><span class="section"><a href="ch02.html#MgmtC-2B-2B-Usingqpidroute">2.1.2.
+ Using qpid-route
+ </a></span></dt><dt><span class="section"><a href="ch02.html#MgmtC-2B-2B-Usingqpidtool">2.1.3.
+ Using qpid-tool
+ </a></span></dt><dt><span class="section"><a href="ch02.html#MgmtC-2B-2B-Usingqpidprintevents">2.1.4.
+ Using
+ qpid-printevents
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s02.html">2.2.
+ Qpid Management Framework
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-WhatIsQMF">2.2.1.
+ What Is QMF
+ </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-GettingStartedwithQMF">2.2.2.
+ Getting
+ Started with QMF
+ </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-QMFConcepts">2.2.3.
+ QMF Concepts
+ </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-TheQMFProtocol">2.2.4.
+ The QMF
+ Protocol
+ </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFConsole">2.2.5.
+ How
+ to Write a QMF Console
+ </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFAgent">2.2.6.
+ How to
+ Write a QMF Agent
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s03.html">2.3.
+ QMF Python Console Tutorial
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-PrerequisiteInstallQpidMessaging">2.3.1.
+ Prerequisite
+ - Install Qpid Messaging
+ </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-SynchronousConsoleOperations">2.3.2.
+ Synchronous
+ Console Operations
+ </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-AsynchronousConsoleOperations">2.3.3.
+ Asynchronous
+ Console Operations
+ </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-DiscoveringwhatKindsofObjectsareAvailable">2.3.4.
+ Discovering what Kinds of Objects are Available
+ </a></span></dt></dl></dd></dl></div><div class="section" title="2.1. Managing the C++ Broker"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="section-Managing-CPP-Broker"></a>2.1. Managing the C++ Broker </h2></div></div></div><p>
+ There are quite a few ways to interact with the C++ broker. The
+ command line tools
+ include:
+ </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>qpid-route - used to configure federation (a set of federated
+ brokers)
+ </p></li><li class="listitem"><p>qpid-config - used to configure queues, exchanges, bindings
+ and list them etc
+ </p></li><li class="listitem"><p>qpid-tool - used to view management information/statistics
+ and call any management actions on the broker
+ </p></li><li class="listitem"><p>qpid-printevents - used to receive and print QMF events
+ </p></li></ul></div><div class="section" title="2.1.1. Using qpid-config"><div class="titlepage"><div><div><h3 class="title"><a name="MgmtC-2B-2B-Usingqpidconfig"></a>2.1.1.
+ Using qpid-config
</h3></div></div></div><p>
- Qpid implements the AMQP Specification, and as the specification
- has progressed Qpid is keeping up with the updates. This means
- that different Qpid versions support different versions of AMQP.
- Here is a simple guide on what use.
- </p><p>
- Here is a matrix that describes the different versions supported
- by each release. The status symbols are interpreted as follows:
- </p><div class="variablelist"><dl><dt><span class="term">Y</span></dt><dd><p>supported</p></dd><dt><span class="term">N</span></dt><dd><p>unsupported</p></dd><dt><span class="term">IP</span></dt><dd><p>in progress</p></dd><dt><span class="term">P</span></dt><dd><p>planned</p></dd></dl></div><div class="table"><a name="id2916252"></a><p class="title"><b>Table 2.1. AMQP Version Support by Qpid Release</b></p><div class="table-contents"><table summary="AMQP Version Support by Qpid Release" border="1"><colgroup><col><col><col><col><col><col></colgroup><tbody><tr><td>
- Component
- </td><td>
- Spec
- </td><td>
-
- </td><td>
-
- </td><td>
-
- </td><td>
-
- </td></tr><tr><td>
-
- </td><td>
-
- </td><td>
- M2.1
- </td><td>
- M3
- </td><td>
- M4
- </td><td>
- 0.5
- </td></tr><tr><td>
- java client
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-9
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-8
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
- java broker
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
-
- </td><td>
-
- </td><td>
- P
- </td></tr><tr><td>
-
- </td><td>
- 0-9
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-8
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
- c++ client/broker
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-9
- </td><td>
- Y
- </td><td>
-
- </td><td>
-
- </td><td>
-
- </td></tr><tr><td>
- python client
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-9
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-8
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
- ruby client
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
-
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-8
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
- C# client
- </td><td>
- 0-10
- </td><td>
-
- </td><td>
-
- </td><td>
- Y
- </td><td>
- Y
- </td></tr><tr><td>
-
- </td><td>
- 0-8
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td><td>
- Y
- </td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s09.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">9.
- ACL
- </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2.
- Interop
- table by AMQP specification version
- </td></tr></table></div></body></html>
+ This utility can be used to create queues exchanges and bindings,
+ both durable and transient. Always check for latest options by
+ running --help command.
+ </p><pre class="programlisting">
+$ qpid-config --help
+Usage: qpid-config [OPTIONS]
+ qpid-config [OPTIONS] exchanges [filter-string]
+ qpid-config [OPTIONS] queues [filter-string]
+ qpid-config [OPTIONS] add exchange <type> <name> [AddExchangeOptions]
+ qpid-config [OPTIONS] del exchange <name>
+ qpid-config [OPTIONS] add queue <name> [AddQueueOptions]
+ qpid-config [OPTIONS] del queue <name>
+ qpid-config [OPTIONS] bind <exchange-name> <queue-name> [binding-key]
+ qpid-config [OPTIONS] unbind <exchange-name> <queue-name> [binding-key]
+
+Options:
+ -b [ --bindings ] Show bindings in queue or exchange list
+ -a [ --broker-addr ] Address (localhost) Address of qpidd broker
+ broker-addr is in the form: [username/password@] hostname | ip-address [:<port>]
+ ex: localhost, 10.1.1.7:10000, broker-host:10000, guest/guest@localhost
+
+Add Queue Options:
+ --durable Queue is durable
+ --cluster-durable Queue becomes durable if there is only one functioning cluster node
+ --file-count N (8) Number of files in queue's persistence journal
+ --file-size N (24) File size in pages (64Kib/page)
+ --max-queue-size N Maximum in-memory queue size as bytes
+ --max-queue-count N Maximum in-memory queue size as a number of messages
+ --limit-policy [none | reject | flow-to-disk | ring | ring-strict]
+ Action taken when queue limit is reached:
+ none (default) - Use broker's default policy
+ reject - Reject enqueued messages
+ flow-to-disk - Page messages to disk
+ ring - Replace oldest unacquired message with new
+ ring-strict - Replace oldest message, reject if oldest is acquired
+ --order [fifo | lvq | lvq-no-browse]
+ Set queue ordering policy:
+ fifo (default) - First in, first out
+ lvq - Last Value Queue ordering, allows queue browsing
+ lvq-no-browse - Last Value Queue ordering, browsing clients may lose data
+ --generate-queue-events N
+ If set to 1, every enqueue will generate an event that can be processed by
+ registered listeners (e.g. for replication). If set to 2, events will be
+ generated for enqueues and dequeues
+
+Add Exchange Options:
+ --durable Exchange is durable
+ --sequence Exchange will insert a 'qpid.msg_sequence' field in the message header
+ with a value that increments for each message forwarded.
+ --ive Exchange will behave as an 'initial-value-exchange', keeping a reference
+ to the last message forwarded and enqueuing that message to newly bound
+ queues.
+</pre><p>
+ Get the summary page
+ </p><pre class="programlisting">
+$ qpid-config
+Total Exchanges: 6
+ topic: 2
+ headers: 1
+ fanout: 1
+ direct: 2
+ Total Queues: 7
+ durable: 0
+ non-durable: 7
+</pre><p>
+ List the queues
+ </p><pre class="programlisting">
+$ qpid-config queues
+Queue Name Attributes
+=================================================================
+pub_start
+pub_done
+sub_ready
+sub_done
+perftest0 --durable
+reply-dhcp-100-18-254.bos.redhat.com.20713 auto-del excl
+topic-dhcp-100-18-254.bos.redhat.com.20713 auto-del excl
+
+</pre><p>
+ List the exchanges with bindings
+ </p><pre class="programlisting">
+$ ./qpid-config -b exchanges
+Exchange '' (direct)
+ bind pub_start => pub_start
+ bind pub_done => pub_done
+ bind sub_ready => sub_ready
+ bind sub_done => sub_done
+ bind perftest0 => perftest0
+ bind mgmt-3206ff16-fb29-4a30-82ea-e76f50dd7d15 => mgmt-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+ bind repl-3206ff16-fb29-4a30-82ea-e76f50dd7d15 => repl-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+Exchange 'amq.direct' (direct)
+ bind repl-3206ff16-fb29-4a30-82ea-e76f50dd7d15 => repl-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+ bind repl-df06c7a6-4ce7-426a-9f66-da91a2a6a837 => repl-df06c7a6-4ce7-426a-9f66-da91a2a6a837
+ bind repl-c55915c2-2fda-43ee-9410-b1c1cbb3e4ae => repl-c55915c2-2fda-43ee-9410-b1c1cbb3e4ae
+Exchange 'amq.topic' (topic)
+Exchange 'amq.fanout' (fanout)
+Exchange 'amq.match' (headers)
+Exchange 'qpid.management' (topic)
+ bind mgmt.# => mgmt-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+</pre></div><div class="section" title="2.1.2. Using qpid-route"><div class="titlepage"><div><div><h3 class="title"><a name="MgmtC-2B-2B-Usingqpidroute"></a>2.1.2.
+ Using qpid-route
+ </h3></div></div></div><p>
+ This utility is to create federated networks of brokers, This
+ allows you for forward messages between brokers in a network.
+ Messages can be routed statically (using "qpid-route route add")
+ where the bindings that control message forwarding are supplied
+ in the route. Message routing can also be dynamic (using
+ "qpid-route dynamic add") where the messages are automatically
+ forwarded to clients based on their bindings to the local broker.
+ </p><pre class="programlisting">
+$ qpid-route
+Usage: qpid-route [OPTIONS] dynamic add <dest-broker> <src-broker> <exchange> [tag] [exclude-list]
+ qpid-route [OPTIONS] dynamic del <dest-broker> <src-broker> <exchange>
+
+ qpid-route [OPTIONS] route add <dest-broker> <src-broker> <exchange> <routing-key> [tag] [exclude-list]
+ qpid-route [OPTIONS] route del <dest-broker> <src-broker> <exchange> <routing-key>
+ qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange> <queue>
+ qpid-route [OPTIONS] queue del <dest-broker> <src-broker> <exchange> <queue>
+ qpid-route [OPTIONS] route list [<dest-broker>]
+ qpid-route [OPTIONS] route flush [<dest-broker>]
+ qpid-route [OPTIONS] route map [<broker>]
+
+ qpid-route [OPTIONS] link add <dest-broker> <src-broker>
+ qpid-route [OPTIONS] link del <dest-broker> <src-broker>
+ qpid-route [OPTIONS] link list [<dest-broker>]
+
+Options:
+ -v [ --verbose ] Verbose output
+ -q [ --quiet ] Quiet output, don't print duplicate warnings
+ -d [ --durable ] Added configuration shall be durable
+ -e [ --del-empty-link ] Delete link after deleting last route on the link
+ -s [ --src-local ] Make connection to source broker (push route)
+ -t <transport> [ --transport <transport>]
+ Specify transport to use for links, defaults to tcp
+
+ dest-broker and src-broker are in the form: [username/password@] hostname | ip-address [:<port>]
+ ex: localhost, 10.1.1.7:10000, broker-host:10000, guest/guest@localhost
+</pre><p>
+ A few examples:
+ </p><pre class="programlisting">
+qpid-route dynamic add host1 host2 fed.topic
+qpid-route dynamic add host2 host1 fed.topic
+
+qpid-route -v route add host1 host2 hub1.topic hub2.topic.stock.buy
+qpid-route -v route add host1 host2 hub1.topic hub2.topic.stock.sell
+qpid-route -v route add host1 host2 hub1.topic 'hub2.topic.stock.#'
+qpid-route -v route add host1 host2 hub1.topic 'hub2.#'
+qpid-route -v route add host1 host2 hub1.topic 'hub2.topic.#'
+qpid-route -v route add host1 host2 hub1.topic 'hub2.global.#'
+</pre><p>
+ The link map feature can be used to display the entire federated
+ network configuration by supplying a single broker as an entry
+ point:
+ </p><pre class="programlisting">
+$ qpid-route route map localhost:10001
+
+Finding Linked Brokers:
+ localhost:10001... Ok
+ localhost:10002... Ok
+ localhost:10003... Ok
+ localhost:10004... Ok
+ localhost:10005... Ok
+ localhost:10006... Ok
+ localhost:10007... Ok
+ localhost:10008... Ok
+
+Dynamic Routes:
+
+ Exchange fed.topic:
+ localhost:10002 <=> localhost:10001
+ localhost:10003 <=> localhost:10002
+ localhost:10004 <=> localhost:10002
+ localhost:10005 <=> localhost:10002
+ localhost:10006 <=> localhost:10005
+ localhost:10007 <=> localhost:10006
+ localhost:10008 <=> localhost:10006
+
+ Exchange fed.direct:
+ localhost:10002 => localhost:10001
+ localhost:10004 => localhost:10003
+ localhost:10003 => localhost:10002
+ localhost:10001 => localhost:10004
+
+Static Routes:
+
+ localhost:10003(ex=amq.direct) <= localhost:10005(ex=amq.direct) key=rkey
+ localhost:10003(ex=amq.direct) <= localhost:10005(ex=amq.direct) key=rkey2
+</pre></div><div class="section" title="2.1.3. Using qpid-tool"><div class="titlepage"><div><div><h3 class="title"><a name="MgmtC-2B-2B-Usingqpidtool"></a>2.1.3.
+ Using qpid-tool
+ </h3></div></div></div><p>
+ This utility provided a telnet style interface to be able to
+ view, list all stats and action
+ all the methods. Simple capture below. Best to just play with it
+ and mail the list if you have
+ questions or want features added.
+ </p><pre class="programlisting">
+qpid:
+qpid: help
+Management Tool for QPID
+Commands:
+ list - Print summary of existing objects by class
+ list <className> - Print list of objects of the specified class
+ list <className> all - Print contents of all objects of specified class
+ list <className> active - Print contents of all non-deleted objects of specified class
+ list <list-of-IDs> - Print contents of one or more objects (infer className)
+ list <className> <list-of-IDs> - Print contents of one or more objects
+ list is space-separated, ranges may be specified (i.e. 1004-1010)
+ call <ID> <methodName> <args> - Invoke a method on an object
+ schema - Print summary of object classes seen on the target
+ schema <className> - Print details of an object class
+ set time-format short - Select short timestamp format (default)
+ set time-format long - Select long timestamp format
+ quit or ^D - Exit the program
+qpid: list
+Management Object Types:
+ ObjectType Active Deleted
+ ================================
+ qpid.binding 21 0
+ qpid.broker 1 0
+ qpid.client 1 0
+ qpid.exchange 6 0
+ qpid.queue 13 0
+ qpid.session 4 0
+ qpid.system 1 0
+ qpid.vhost 1 0
+qpid: list qpid.system
+Objects of type qpid.system
+ ID Created Destroyed Index
+ ==================================
+ 1000 21:00:02 - host
+qpid: list 1000
+Object of type qpid.system: (last sample time: 21:26:02)
+ Type Element 1000
+ =======================================================
+ config sysId host
+ config osName Linux
+ config nodeName localhost.localdomain
+ config release 2.6.24.4-64.fc8
+ config version #1 SMP Sat Mar 29 09:15:49 EDT 2008
+ config machine x86_64
+qpid: schema queue
+Schema for class 'qpid.queue':
+ Element Type Unit Access Notes Description
+ ===================================================================================================================
+ vhostRef reference ReadCreate index
+ name short-string ReadCreate index
+ durable boolean ReadCreate
+ autoDelete boolean ReadCreate
+ exclusive boolean ReadCreate
+ arguments field-table ReadOnly Arguments supplied in queue.declare
+ storeRef reference ReadOnly Reference to persistent queue (if durable)
+ msgTotalEnqueues uint64 message Total messages enqueued
+ msgTotalDequeues uint64 message Total messages dequeued
+ msgTxnEnqueues uint64 message Transactional messages enqueued
+ msgTxnDequeues uint64 message Transactional messages dequeued
+ msgPersistEnqueues uint64 message Persistent messages enqueued
+ msgPersistDequeues uint64 message Persistent messages dequeued
+ msgDepth uint32 message Current size of queue in messages
+ msgDepthHigh uint32 message Current size of queue in messages (High)
+ msgDepthLow uint32 message Current size of queue in messages (Low)
+ byteTotalEnqueues uint64 octet Total messages enqueued
+ byteTotalDequeues uint64 octet Total messages dequeued
+ byteTxnEnqueues uint64 octet Transactional messages enqueued
+ byteTxnDequeues uint64 octet Transactional messages dequeued
+ bytePersistEnqueues uint64 octet Persistent messages enqueued
+ bytePersistDequeues uint64 octet Persistent messages dequeued
+ byteDepth uint32 octet Current size of queue in bytes
+ byteDepthHigh uint32 octet Current size of queue in bytes (High)
+ byteDepthLow uint32 octet Current size of queue in bytes (Low)
+ enqueueTxnStarts uint64 transaction Total enqueue transactions started
+ enqueueTxnCommits uint64 transaction Total enqueue transactions committed
+ enqueueTxnRejects uint64 transaction Total enqueue transactions rejected
+ enqueueTxnCount uint32 transaction Current pending enqueue transactions
+ enqueueTxnCountHigh uint32 transaction Current pending enqueue transactions (High)
+ enqueueTxnCountLow uint32 transaction Current pending enqueue transactions (Low)
+ dequeueTxnStarts uint64 transaction Total dequeue transactions started
+ dequeueTxnCommits uint64 transaction Total dequeue transactions committed
+ dequeueTxnRejects uint64 transaction Total dequeue transactions rejected
+ dequeueTxnCount uint32 transaction Current pending dequeue transactions
+ dequeueTxnCountHigh uint32 transaction Current pending dequeue transactions (High)
+ dequeueTxnCountLow uint32 transaction Current pending dequeue transactions (Low)
+ consumers uint32 consumer Current consumers on queue
+ consumersHigh uint32 consumer Current consumers on queue (High)
+ consumersLow uint32 consumer Current consumers on queue (Low)
+ bindings uint32 binding Current bindings
+ bindingsHigh uint32 binding Current bindings (High)
+ bindingsLow uint32 binding Current bindings (Low)
+ unackedMessages uint32 message Messages consumed but not yet acked
+ unackedMessagesHigh uint32 message Messages consumed but not yet acked (High)
+ unackedMessagesLow uint32 message Messages consumed but not yet acked (Low)
+ messageLatencySamples delta-time nanosecond Broker latency through this queue (Samples)
+ messageLatencyMin delta-time nanosecond Broker latency through this queue (Min)
+ messageLatencyMax delta-time nanosecond Broker latency through this queue (Max)
+ messageLatencyAverage delta-time nanosecond Broker latency through this queue (Average)
+Method 'purge' Discard all messages on queue
+qpid: list queue
+Objects of type qpid.queue
+ ID Created Destroyed Index
+ ===========================================================================
+ 1012 21:08:13 - 1002.pub_start
+ 1014 21:08:13 - 1002.pub_done
+ 1016 21:08:13 - 1002.sub_ready
+ 1018 21:08:13 - 1002.sub_done
+ 1020 21:08:13 - 1002.perftest0
+ 1038 21:09:08 - 1002.mgmt-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+ 1040 21:09:08 - 1002.repl-3206ff16-fb29-4a30-82ea-e76f50dd7d15
+ 1046 21:09:32 - 1002.mgmt-df06c7a6-4ce7-426a-9f66-da91a2a6a837
+ 1048 21:09:32 - 1002.repl-df06c7a6-4ce7-426a-9f66-da91a2a6a837
+ 1054 21:10:01 - 1002.mgmt-c55915c2-2fda-43ee-9410-b1c1cbb3e4ae
+ 1056 21:10:01 - 1002.repl-c55915c2-2fda-43ee-9410-b1c1cbb3e4ae
+ 1063 21:26:00 - 1002.mgmt-8d621997-6356-48c3-acab-76a37081d0f3
+ 1065 21:26:00 - 1002.repl-8d621997-6356-48c3-acab-76a37081d0f3
+qpid: list 1020
+Object of type qpid.queue: (last sample time: 21:26:02)
+ Type Element 1020
+ ==========================================================================
+ config vhostRef 1002
+ config name perftest0
+ config durable False
+ config autoDelete False
+ config exclusive False
+ config arguments {'qpid.max_size': 0, 'qpid.max_count': 0}
+ config storeRef NULL
+ inst msgTotalEnqueues 500000 messages
+ inst msgTotalDequeues 500000
+ inst msgTxnEnqueues 0
+ inst msgTxnDequeues 0
+ inst msgPersistEnqueues 0
+ inst msgPersistDequeues 0
+ inst msgDepth 0
+ inst msgDepthHigh 0
+ inst msgDepthLow 0
+ inst byteTotalEnqueues 512000000 octets
+ inst byteTotalDequeues 512000000
+ inst byteTxnEnqueues 0
+ inst byteTxnDequeues 0
+ inst bytePersistEnqueues 0
+ inst bytePersistDequeues 0
+ inst byteDepth 0
+ inst byteDepthHigh 0
+ inst byteDepthLow 0
+ inst enqueueTxnStarts 0 transactions
+ inst enqueueTxnCommits 0
+ inst enqueueTxnRejects 0
+ inst enqueueTxnCount 0
+ inst enqueueTxnCountHigh 0
+ inst enqueueTxnCountLow 0
+ inst dequeueTxnStarts 0
+ inst dequeueTxnCommits 0
+ inst dequeueTxnRejects 0
+ inst dequeueTxnCount 0
+ inst dequeueTxnCountHigh 0
+ inst dequeueTxnCountLow 0
+ inst consumers 0 consumers
+ inst consumersHigh 0
+ inst consumersLow 0
+ inst bindings 1 binding
+ inst bindingsHigh 1
+ inst bindingsLow 1
+ inst unackedMessages 0 messages
+ inst unackedMessagesHigh 0
+ inst unackedMessagesLow 0
+ inst messageLatencySamples 0
+ inst messageLatencyMin 0
+ inst messageLatencyMax 0
+ inst messageLatencyAverage 0
+qpid:
+</pre></div><div class="section" title="2.1.4. Using qpid-printevents"><div class="titlepage"><div><div><h3 class="title"><a name="MgmtC-2B-2B-Usingqpidprintevents"></a>2.1.4.
+ Using
+ qpid-printevents
+ </h3></div></div></div><p>
+ This utility connects to one or more brokers and collects events,
+ printing out a line per event.
+ </p><pre class="programlisting">
+$ qpid-printevents --help
+Usage: qpid-printevents [options] [broker-addr]...
+
+Collect and print events from one or more Qpid message brokers. If no broker-
+addr is supplied, qpid-printevents will connect to 'localhost:5672'. broker-
+addr is of the form: [username/password@] hostname | ip-address [:<port>] ex:
+localhost, 10.1.1.7:10000, broker-host:10000, guest/guest@localhost
+
+Options:
+ -h, --help show this help message and exit
+</pre><p>
+ You get the idea... have fun!
+ </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s11.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.11.
+ Qpid Interoperability Documentation
+ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2.2.
+ Qpid Management Framework
+ </td></tr></table></div></body></html>
Modified: qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02s02.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02s02.html?rev=957678&r1=957677&r2=957678&view=diff
==============================================================================
--- qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02s02.html (original)
+++ qpid/site/docs/books/0.5/AMQP-Messaging-Broker-CPP-Book/html/ch02s02.html Thu Jun 24 18:50:21 2010
@@ -1,155 +1,586 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>2. Interop table by AMQP specification version</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch02.html" title="Chapter 2. AMQP compatibility"><link rel="prev" href="ch02.html" title="Chapter 2. AMQP compatibility"><link rel="next" href="ch03.html" title="Chapter 3. Qpid Interoperability Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.
- Interop
- table by AMQP specification version
- </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2.
- AMQP compatibility
- </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="section" title="2. Interop table by AMQP specification version"><div class="titlepage"><div><div><h3 class="title"><a name="AMQPcompatibility-InteroptablebyAMQPspecificationversion"></a>2.
- Interop
- table by AMQP specification version
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>2.2. Qpid Management Framework</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch02.html" title="Chapter 2. Managing the AMQP Messaging Broker"><link rel="prev" href="ch02.html" title="Chapter 2. Managing the AMQP Messaging Broker"><link rel="next" href="ch02s03.html" title="2.3. QMF Python Console Tutorial"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.2.
+ Qpid Management Framework
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2.
+ Managing the AMQP Messaging Broker
+ </th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" title="2.2. Qpid Management Framework"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2905169"></a>2.2.
+ Qpid Management Framework
+ </h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-WhatIsQMF" title="2.2.1. What Is QMF">Section 2.2.1, “
+ What Is QMF
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-GettingStartedwithQMF" title="2.2.2. Getting Started with QMF">Section 2.2.2, “
+ Getting
+ Started with QMF
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-QMFConcepts" title="2.2.3. QMF Concepts">Section 2.2.3, “
+ QMF Concepts
+ ”</a>
+ </p></li><li class="listitem"><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-Console-2CAgent-2CandBroker" title="2.2.3.1. Console, Agent, and Broker">Section 2.2.3.1, “
+ Console,
+ Agent, and Broker
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-Schema" title="2.2.3.2. Schema">Section 2.2.3.2, “
+ Schema
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-ClassKeysandClassVersioning" title="2.2.3.3. Class Keys and Class Versioning">Section 2.2.3.3, “
+ Class
+ Keys and Class Versioning
+ ”</a>
+ </p></li></ul></div><p>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-TheQMFProtocol" title="2.2.4. The QMF Protocol">Section 2.2.4, “
+ The QMF
+ Protocol
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFConsole" title="2.2.5. How to Write a QMF Console">Section 2.2.5, “
+ How
+ to Write a QMF Console
+ ”</a>
+ </p></li><li class="listitem"><p>
+ <a class="xref" href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFAgent" title="2.2.6. How to Write a QMF Agent">Section 2.2.6, “
+ How to
+ Write a QMF Agent
+ ”</a>
+ </p></li></ul></div><p>
+ Please visit the <a class="xref" href="">???</a> for information
+ about the future of QMF.
+ </p><div class="section" title="2.2.1. What Is QMF"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-WhatIsQMF"></a>2.2.1.
+ What Is QMF
</h3></div></div></div><p>
- Above table represented in another format.
- </p><div class="table"><a name="id2918316"></a><p class="title"><b>Table 2.2. AMQP Version Support - alternate format</b></p><div class="table-contents"><table summary="AMQP Version Support - alternate format" border="1"><colgroup><col><col><col><col><col></colgroup><tbody><tr><td>
-
- </td><td>
- release
+ QMF (Qpid Management Framework) is a general-purpose management
+ bus built on Qpid Messaging. It takes advantage of the
+ scalability, security, and rich capabilities of Qpid to provide
+ flexible and easy-to-use manageability to a large set of
+ applications.
+ </p></div><div class="section" title="2.2.2. Getting Started with QMF"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-GettingStartedwithQMF"></a>2.2.2.
+ Getting
+ Started with QMF
+ </h3></div></div></div><p>
+ QMF is used through two primary APIs. The <span class="emphasis"><em>console</em></span> API is
+ used for console applications that wish to access and manipulate
+ manageable components through QMF. The <span class="emphasis"><em>agent</em></span> API is used
+ for application that wish to be managed through QMF.
+ </p><p>
+ The fastest way to get started with QMF is to work through the
+ "How To" tutorials for consoles and agents. For a deeper
+ understanding of what is happening in the tutorials, it is
+ recommended that you look at the <span class="emphasis"><em>Qmf Concepts</em></span> section.
+ </p></div><div class="section" title="2.2.3. QMF Concepts"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-QMFConcepts"></a>2.2.3.
+ QMF Concepts
+ </h3></div></div></div><p>
+ This section introduces important concepts underlying QMF.
+ </p><div class="section" title="2.2.3.1. Console, Agent, and Broker"><div class="titlepage"><div><div><h4 class="title"><a name="QpidManagementFramework-Console-2CAgent-2CandBroker"></a>2.2.3.1.
+ Console,
+ Agent, and Broker
+ </h4></div></div></div><p>
+ The major architectural components of QMF are the Console, the
+ Agent, and the Broker. Console components are the "managing"
+ components of QMF and agent components are the "managed" parts.
+ The broker is a central (possibly distributed, clustered and
+ fault-tolerant) component that manages name spaces and caches
+ schema information.
+ </p><p>
+ A console application may be a command-line utility, a
+ three-tiered web-based GUI, a collection and storage device, a
+ specialized application that monitors and reacts to events and
+ conditions, or anything else somebody wishes to develop that uses
+ QMF management data.
+ </p><p>
+ An agent application is any application that has been enhanced to
+ allow itself to be managed via QMF.
+ </p><pre class="programlisting">
+ +-------------+ +---------+ +---------------+ +-------------------+
+ | CLI utility | | Web app | | Audit storage | | Event correlation |
+ +-------------+ +---------+ +---------------+ +-------------------+
+ ^ ^ ^ ^ |
+ | | | | |
+ v v v v v
+ +---------------------------------------------------------------------------------+
+ | Qpid Messaging Bus (with QMF Broker capability) |
+ +---------------------------------------------------------------------------------+
+ ^ ^ ^
+ | | |
+ v v v
+ +----------------+ +----------------+ +----------------+
+ | Manageable app | | Manageable app | | Manageable app |
+ +----------------+ +----------------+ +----------------+
+</pre><p>
+ In the above diagram, the <span class="emphasis"><em>Manageable apps</em></span> are agents,
+ the <span class="emphasis"><em>CLI utility</em></span>, <span class="emphasis"><em>Web app</em></span>, and <span class="emphasis"><em>Audit
+ storage</em></span> are consoles, and <span class="emphasis"><em>Event correlation</em></span> is both
+ a console and an agent because it can create events based on the
+ aggregation of what it sees.
+ </p></div><div class="section" title="2.2.3.2. Schema"><div class="titlepage"><div><div><h4 class="title"><a name="QpidManagementFramework-Schema"></a>2.2.3.2.
+ Schema
+ </h4></div></div></div><p>
+ A <span class="emphasis"><em>schema</em></span> describes the structure of management data.
+ Each <span class="emphasis"><em>agent</em></span> provides a schema that describes its
+ management model including the object classes, methods, events,
+ etc. that it provides. In the current QMF distribution, the
+ agent's schema is codified in an XML document. In the near
+ future, there will also be ways to programatically create QMF
+ schemata.
+ </p><div class="section" title="2.2.3.2.1. Package"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-Package"></a>2.2.3.2.1.
+ Package
+ </h5></div></div></div><p>
+ Each agent that exports a schema identifies itself using a
+ <span class="emphasis"><em>package</em></span> name. The package provides a unique namespace
+ for the classes in the agent's schema that prevent collisions
+ with identically named classes in other agents' schemata.
+ </p><p>
+ Package names are in "reverse domain name" form with levels of
+ hierarchy separated by periods. For example, the Qpid messaging
+ broker uses package "org.apache.qpid.broker" and the Access
+ Control List plugin for the broker uses package
+ "org.apache.qpid.acl". In general, the package name should be the
+ reverse of the internet domain name assigned to the organization
+ that owns the agent software followed by identifiers to uniquely
+ identify the agent.
+ </p><p>
+ The XML document for a package's schema uses an enclosing
+ <schema> tag. For example:
+ </p><pre class="programlisting">
+<schema package="org.apache.qpid.broker">
+
+</schema>
+</pre></div><div class="section" title="2.2.3.2.2. Object Classes"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-ObjectClasses"></a>2.2.3.2.2.
+ Object
+ Classes
+ </h5></div></div></div><p>
+ <span class="emphasis"><em>Object classes</em></span> define types for manageable objects. The
+ agent may create and destroy objects which are instances of
+ object classes in the schema. An object class is defined in the
+ XML document using the <class> tag. An object class is
+ composed of properties, statistics, and methods.
+ </p><pre class="programlisting">
+ <class name="Exchange">
+ <property name="vhostRef" type="objId" references="Vhost" access="RC" index="y" parentRef="y"/>
+ <property name="name" type="sstr" access="RC" index="y"/>
+ <property name="type" type="sstr" access="RO"/>
+ <property name="durable" type="bool" access="RC"/>
+ <property name="arguments" type="map" access="RO" desc="Arguments supplied in exchange.declare"/>
+
+ <statistic name="producerCount" type="hilo32" desc="Current producers on exchange"/>
+ <statistic name="bindingCount" type="hilo32" desc="Current bindings"/>
+ <statistic name="msgReceives" type="count64" desc="Total messages received"/>
+ <statistic name="msgDrops" type="count64" desc="Total messages dropped (no matching key)"/>
+ <statistic name="msgRoutes" type="count64" desc="Total routed messages"/>
+ <statistic name="byteReceives" type="count64" desc="Total bytes received"/>
+ <statistic name="byteDrops" type="count64" desc="Total bytes dropped (no matching key)"/>
+ <statistic name="byteRoutes" type="count64" desc="Total routed bytes"/>
+ </class>
+</pre></div><div class="section" title="2.2.3.2.3. Properties and Statistics"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-PropertiesandStatistics"></a>2.2.3.2.3.
+ Properties
+ and Statistics
+ </h5></div></div></div><p>
+ <property> and <statistic> tags must be placed within
+ <schema> and </schema> tags.
+ </p><p>
+ Properties, statistics, and methods are the building blocks of an
+ object class. Properties and statistics are both object
+ attributes, though they are treated differently. If an object
+ attribute is defining, seldom or never changes, or is large in
+ size, it should be defined as a <span class="emphasis"><em>property</em></span>. If an
+ attribute is rapidly changing or is used to instrument the object
+ (counters, etc.), it should be defined as a <span class="emphasis"><em>statistic</em></span>.
+ </p><p>
+ The XML syntax for <property> and <statistic> have
+ the following XML-attributes:
+ </p><div class="table"><a name="id2905599"></a><p class="title"><b>Table 2.1. XML Attributes for QMF Properties and Statistics</b></p><div class="table-contents"><table summary="XML Attributes for QMF Properties and Statistics" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td>
+ Attribute
+ </td><td>
+ <property>
+ </td><td>
+ <statistic>
+ </td><td>
+ Meaning
+ </td></tr><tr><td>
+ name
</td><td>
- 0-8
+ Y
</td><td>
- 0-9
+ Y
</td><td>
- 0-10
- </td></tr><tr><td>
- java client
+ The name of the attribute
+ </td></tr><tr><td>
+ type
</td><td>
- M3 M4 0.5
+ Y
</td><td>
Y
</td><td>
+ The data type of the attribute
+ </td></tr><tr><td>
+ unit
+ </td><td>
Y
</td><td>
Y
- </td></tr><tr><td>
- java client
</td><td>
- M2.1
+ Optional unit name - use the singular (i.e. MByte)
+ </td></tr><tr><td>
+ desc
</td><td>
Y
</td><td>
Y
</td><td>
- N
+ Description to annotate the attribute
</td></tr><tr><td>
- java broker
- </td><td>
- M3 M4 0.5
+ references
</td><td>
Y
</td><td>
+
+ </td><td>
+ If the type is "objId", names the referenced class
+ </td></tr><tr><td>
+ access
+ </td><td>
Y
</td><td>
- N
+
+ </td><td>
+ Access rights (RC, RW, RO)
</td></tr><tr><td>
- java broker
+ index
</td><td>
- trunk
+ Y
+ </td><td>
+
+ </td><td>
+ "y" if this property is used to uniquely identify the
+ object. There may be more than one index property in a
+ class
+ </td></tr><tr><td>
+ parentRef
</td><td>
Y
</td><td>
+
+ </td><td>
+ "y" if this property references an object in which this
+ object is in a child-parent relationship.
+ </td></tr><tr><td>
+ optional
+ </td><td>
Y
</td><td>
- P
+
+ </td><td>
+ "y" if this property is optional (i.e. may be
+ NULL/not-present)
</td></tr><tr><td>
- java broker
+ min
+ </td><td>
+ Y
+ </td><td>
+
</td><td>
- M2.1
+ Minimum value of a numeric attribute
+ </td></tr><tr><td>
+ max
</td><td>
Y
</td><td>
+
+ </td><td>
+ Maximum value of a numeric attribute
+ </td></tr><tr><td>
+ maxLen
+ </td><td>
Y
</td><td>
- N
+
+ </td><td>
+ Maximum length of a string attribute
+ </td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="2.2.3.2.4. Methods"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-Methods"></a>2.2.3.2.4.
+ Methods
+ </h5></div></div></div><p>
+ <method> tags must be placed within <schema> and
+ </schema> tags.
+ </p><p>
+ A <span class="emphasis"><em>method</em></span> is an invokable function to be performed on
+ instances of the object class (i.e. a Remote Procedure Call). A
+ <method> tag has a name, an optional description, and
+ encloses zero or more arguments. Method arguments are defined by
+ the <arg> tag and have a name, a type, a direction, and an
+ optional description. The argument direction can be "I", "O", or
+ "IO" indicating input, output, and input/output respectively. An
+ example:
+ </p><pre class="programlisting">
+ <method name="echo" desc="Request a response to test the path to the management broker">
+ <arg name="sequence" dir="IO" type="uint32"/>
+ <arg name="body" dir="IO" type="lstr"/>
+ </method>
+</pre></div><div class="section" title="2.2.3.2.5. Event Classes"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-EventClasses"></a>2.2.3.2.5.
+ Event Classes
+ </h5></div></div></div><p></p></div><div class="section" title="2.2.3.2.6. Data Types"><div class="titlepage"><div><div><h5 class="title"><a name="QpidManagementFramework-DataTypes"></a>2.2.3.2.6.
+ Data Types
+ </h5></div></div></div><p>
+ Object attributes, method arguments, and event arguments have
+ data types. The data types are based on the rich data typing
+ system provided by the AMQP messaging protocol. The following
+ table describes the data types available for QMF:
+ </p><div class="table"><a name="id2907143"></a><p class="title"><b>Table 2.2. QMF Datatypes</b></p><div class="table-contents"><table summary="QMF Datatypes" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+ QMF Type
+ </td><td>
+ Description
</td></tr><tr><td>
- c++ client/broker
+ REF
</td><td>
- M3 M4 0.5
+ QMF Object ID - Used to reference another QMF object.
+ </td></tr><tr><td>
+ U8
</td><td>
- N
+ 8-bit unsigned integer
+ </td></tr><tr><td>
+ U16
</td><td>
- N
+ 16-bit unsigned integer
+ </td></tr><tr><td>
+ U32
</td><td>
- Y
+ 32-bit unsigned integer
</td></tr><tr><td>
- c++ client/broker
+ U64
</td><td>
- M2.1
+ 64-bit unsigned integer
+ </td></tr><tr><td>
+ S8
</td><td>
- N
+ 8-bit signed integer
+ </td></tr><tr><td>
+ S16
</td><td>
- Y
+ 16-bit signed integer
+ </td></tr><tr><td>
+ S32
</td><td>
- N
+ 32-bit signed integer
</td></tr><tr><td>
- python client
+ S64
</td><td>
- M3 M4 0.5
+ 64-bit signed integer
+ </td></tr><tr><td>
+ BOOL
</td><td>
- Y
+ Boolean - True or False
+ </td></tr><tr><td>
+ SSTR
</td><td>
- Y
+ Short String - String of up to 255 bytes
+ </td></tr><tr><td>
+ LSTR
</td><td>
- Y
+ Long String - String of up to 65535 bytes
</td></tr><tr><td>
- python client
+ ABSTIME
</td><td>
- M2.1
+ Absolute time since the epoch in nanoseconds (64-bits)
+ </td></tr><tr><td>
+ DELTATIME
</td><td>
- Y
+ Delta time in nanoseconds (64-bits)
+ </td></tr><tr><td>
+ FLOAT
</td><td>
- Y
+ Single precision floating point number
+ </td></tr><tr><td>
+ DOUBLE
</td><td>
- N
+ Double precision floating point number
</td></tr><tr><td>
- ruby client
+ UUID
</td><td>
- M3 M4 0.5
+ UUID - 128 bits
+ </td></tr><tr><td>
+ FTABLE
</td><td>
- Y
+ Field-table - std::map in C++, dictionary in Python
+ </td></tr></tbody></table></div></div><br class="table-break"><p>
+ In the XML schema definition, types go by different names and
+ there are a number of special cases. This is because the XML
+ schema is used in code-generation for the agent API. It provides
+ options that control what kind of accessors are generated for
+ attributes of different types. The following table enumerates the
+ types available in the XML format, which QMF types they map to,
+ and other special handling that occurs.
+ </p><div class="table"><a name="id2907417"></a><p class="title"><b>Table 2.3. XML Schema Mapping for QMF Types</b></p><div class="table-contents"><table summary="XML Schema Mapping for QMF Types" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td>
+ XML Type
</td><td>
- Y
+ QMF Type
</td><td>
- N
+ Accessor Style
+ </td><td>
+ Special Characteristics
</td></tr><tr><td>
- ruby client
+ objId
</td><td>
- trunk
+ REF
</td><td>
- Y
+ Direct (get, set)
</td><td>
- Y
+
+ </td></tr><tr><td>
+ uint8,16,32,64
+ </td><td>
+ U8,16,32,64
+ </td><td>
+ Direct (get, set)
</td><td>
- P
+
</td></tr><tr><td>
- C# client
+ int8,16,32,64
</td><td>
- M3 M4 0.5
+ S8,16,32,64
</td><td>
- Y
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ bool
+ </td><td>
+ BOOL
</td><td>
- N
+ Direct (get, set)
</td><td>
- N
+
</td></tr><tr><td>
- C# client
+ sstr
</td><td>
- trunk
+ SSTR
</td><td>
- Y
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ lstr
</td><td>
- N
+ LSTR
</td><td>
- Y
- </td></tr></tbody></table></div></div><br class="table-break"></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2.
- AMQP compatibility
- </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3.
- Qpid Interoperability Documentation
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ absTime
+ </td><td>
+ ABSTIME
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ deltaTime
+ </td><td>
+ DELTATIME
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ float
+ </td><td>
+ FLOAT
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ double
+ </td><td>
+ DOUBLE
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ uuid
+ </td><td>
+ UUID
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ map
+ </td><td>
+ FTABLE
+ </td><td>
+ Direct (get, set)
+ </td><td>
+
+ </td></tr><tr><td>
+ hilo8,16,32,64
+ </td><td>
+ U8,16,32,64
+ </td><td>
+ Counter (inc, dec)
+ </td><td>
+ Generates value, valueMin, valueMax
+ </td></tr><tr><td>
+ count8,16,32,64
+ </td><td>
+ U8,16,32,64
+ </td><td>
+ Counter (inc, dec)
+ </td><td>
+
+ </td></tr><tr><td>
+ mma32,64
+ </td><td>
+ U32,64
+ </td><td>
+ Direct
+ </td><td>
+ Generates valueMin, valueMax, valueAverage, valueSamples
+ </td></tr><tr><td>
+ mmaTime
+ </td><td>
+ DELTATIME
+ </td><td>
+ Direct
+ </td><td>
+ Generates valueMin, valueMax, valueAverage, valueSamples
+ </td></tr></tbody></table></div></div><br class="table-break"><div class="note" title="Important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>
+ When writing a schema using the XML format, types used in
+ <property> or <arg> must be types that have
+ <span class="emphasis"><em>Direct</em></span> accessor style. Any type may be used in
+ <statistic> tags.
+ </p></div></div></div><div class="section" title="2.2.3.3. Class Keys and Class Versioning"><div class="titlepage"><div><div><h4 class="title"><a name="QpidManagementFramework-ClassKeysandClassVersioning"></a>2.2.3.3.
+ Class
+ Keys and Class Versioning
+ </h4></div></div></div><p></p></div></div><div class="section" title="2.2.4. The QMF Protocol"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-TheQMFProtocol"></a>2.2.4.
+ The QMF
+ Protocol
+ </h3></div></div></div><p>
+ The QMF protocol defines the message formats and communication
+ patterns used by the different QMF components to communicate with
+ one another.
+ </p><p>
+ A description of the current version of the QMF protocol can be
+ found at <a class="xref" href="">???</a>.
+ </p><p>
+ A proposal for an updated protocol based on map-messages is in
+ progress and can be found at <a class="xref" href="">???</a>.
+ </p></div><div class="section" title="2.2.5. How to Write a QMF Console"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-HowtoWriteaQMFConsole"></a>2.2.5.
+ How
+ to Write a QMF Console
+ </h3></div></div></div><p>
+ Please see the <a class="xref" href="">???</a> for information about using the console API with
+ Python.
+ </p></div><div class="section" title="2.2.6. How to Write a QMF Agent"><div class="titlepage"><div><div><h3 class="title"><a name="QpidManagementFramework-HowtoWriteaQMFAgent"></a>2.2.6.
+ How to
+ Write a QMF Agent
+ </h3></div></div></div><p></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2.
+ Managing the AMQP Messaging Broker
+ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2.3.
+ QMF Python Console Tutorial
</td></tr></table></div></body></html>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org