summaryrefslogtreecommitdiff
path: root/documentation/content/xdocs/AMQP0-9-DesignNotes.html
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/xdocs/AMQP0-9-DesignNotes.html')
-rwxr-xr-xdocumentation/content/xdocs/AMQP0-9-DesignNotes.html69
1 files changed, 69 insertions, 0 deletions
diff --git a/documentation/content/xdocs/AMQP0-9-DesignNotes.html b/documentation/content/xdocs/AMQP0-9-DesignNotes.html
new file mode 100755
index 0000000000..f225d91848
--- /dev/null
+++ b/documentation/content/xdocs/AMQP0-9-DesignNotes.html
@@ -0,0 +1,69 @@
+<html>
+ <head>
+ <title>Apache Qpid : AMQP0-9-DesignNotes</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Apache Qpid : AMQP0-9-DesignNotes
+ </span>
+ </div>
+ <div class="pagesubheading">
+ This page last changed on Jan 30, 2007 by <font color="#0050B2">kpvdr</font>.
+ </div>
+
+ <h2><a name="AMQP0-9-DesignNotes-DesignnotesforAMQP09implemenation"></a>Design notes for AMQP 0-9 implemenation</h2>
+
+<ul>
+ <li>Reserved field in Request frame must be set to 0.</li>
+ <li>Request and Response constants were added to amqp.0-9.xml</li>
+ <li>Request ID and Response ID must start at 1 for new channels. 0 is reserved for future use, and should not be used in normal interactions between client and server.</li>
+ <li>Response Mark must start at 0 for new channels.</li>
+ <li>Content class encoding: For inline messages (first byte = 0), a null or empty byte array may be used.</li>
+ <li>Content class encoding: For refs, (first byte = 1), an error or exception must be thrown if the byte array is either null or empty. It makes no sense to send a null ref.</li>
+ <li>Content class decoding: For inline messages (first byte = 0), is is not possible to discriminate between the null array or empty array case above that encoded it. Decode as an empty byte array, not a null. (open for discussion)</li>
+ <li>Content class: It may be possible to set a value for either/or null and empty values in the future - if a use-case can be made for it</li>
+ <li>Possible batch-handling modes should be decided upon.</li>
+ <li>TODO: Devise a mechanism to allow one-way requests, where no acknowledgements are sent.</li>
+</ul>
+
+
+<h2><a name="AMQP0-9-DesignNotes-AMQP09SpecificationIssues"></a>AMQP 0-9 Specification Issues</h2>
+<ul>
+ <li>Errara will be made by adding to an amqp-errata.0-9.xml file rather than by making edits directly to the specification file. These are the advantages:
+ <ul>
+ <li>The differences between the current specification and the spec as we use it are readily apparent.</li>
+ <li>Different implementations share the same specification file. Thus errors that may arise as a result of a change required for one implementation (e.g. Java) on others (e.g. C++) are controled/eliminated.</li>
+ </ul>
+ </li>
+ <li>Two constants are missing and need to be inserted as an erratum:
+<div class="preformatted"><div class="preformattedContent">
+<pre> &lt;constant name = "frame-request" value = "9" /&gt;
+ &lt;constant name = "frame-response" value = "10" /&gt;
+</pre>
+</div></div></li>
+ <li>The Basic field <font color="blue"><tt>Basic.type</tt></font> (a <tt>shortstr</tt>) was omitted from <font color="blue"><tt>Message.transfer</tt></font>. However, after some discussion it was resolved that since thid field serves JMS messaging only, that it should be handled as a custom property rather than creating an XML erratum to insert it. The property name is "<font color="blue"><b><tt>JMSXType</tt></b></font>".</li>
+ <li>The Basic field <font color="blue"><tt>Basic.mandatory</tt></font>(a <tt>bit</tt>) was originally omitted form <font color="blue"><tt>Message.transfer</tt></font> because its functionality would have been handled by the availability of dead-letter queues. However, they did not make it into the AMQP 0-9 speicification. Thus, <font color="blue"><tt>Basic.mandatory</tt></font> has been temporarily added as the last field in <font color="blue"><tt>Message.transfer</tt></font> until dead-letter queues become a reality in the specification.</li>
+</ul>
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td height="12" background="border/border_bottom.gif"><img src="border/spacer.gif" width="1" height="1" border="0"/></td>
+ </tr>
+ <tr>
+ <td align="center"><font color="grey">Document generated by Confluence on Apr 22, 2008 02:47</font></td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file