Author: buildbot
Date: Thu Mar 10 16:22:25 2016
New Revision: 982403

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/openwire-version-2-specification.html

Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: 
websites/production/activemq/content/openwire-version-2-specification.html
==============================================================================
--- websites/production/activemq/content/openwire-version-2-specification.html 
(original)
+++ websites/production/activemq/content/openwire-version-2-specification.html 
Thu Mar 10 16:22:25 2016
@@ -81,28 +81,13 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><div class="confluence-information-macro 
confluence-information-macro-warning"><p class="title">OpenWire Version 2 is 
not the latest version.</p><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>This article references OpenWire V2 which is no longer the latest version, 
the default setting shown in this article may not reflect the current defaults, 
see <a shape="rect" href="configuring-wire-formats.html">this page</a> for the 
latest default OpenWire settings.</p></div></div> 
-
-<h2 id="OpenWireVersion2Specification-Overview">Overview</h2>
-
-<p>OpenWire is used to marshal objects to byte arrays and back.  We will refer 
to the marshaled objects as commands.  </p>
-
-<p>A TCP network connection would see multiple commands back to back on the 
stream.  Commands are not delimited in anyway and are variable sized.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-+---------+  +---------+      +---------+
+<div class="wiki-content maincontent"><div class="confluence-information-macro 
confluence-information-macro-warning"><p class="title">OpenWire Version 2 is 
not the latest version.</p><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This article references OpenWire 
V2 which is no longer the latest version. The formatting and encoding rules in 
this article are still valid for later OpenWire versions, but later versions 
define additional fields in the OpenWire commands. The default settings shown 
in this article may not reflect the current defaults, see <a shape="rect" 
href="configuring-wire-formats.html">this page</a> for the latest default 
OpenWire settings.</p></div></div><h2 
id="OpenWireVersion2Specification-Overview">Overview</h2><p>OpenWire is used to 
marshal objects to byte arrays and back. We will refer to the marshaled objects 
as commands.</p><p>A TCP network connection would see
  multiple commands back to back on the stream. Commands are not delimited in 
anyway and are variable sized.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">+---------+  +---------+      +---------+
 | command |  | command | .... | command |
 +---------+  +---------+      +---------+
 </pre>
-</div></div>
-
-<p>All data primitive types used in the encoded commands are encoded in 
big-endian/network byte order. </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-primitive types and encoding:
+</div></div><p>All data primitive types used in the encoded commands are 
encoded in big-endian/network byte order.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">primitive types and encoding:
              |               |               |               |               | 
              |               
 +----------+ | +-----------+ | +-----------+ | +-----------+ | +-----------+ | 
+-----------+ | +-----------+ 
 | byte     | | | char      | | | short     | | | int       | | | long      | | 
| float     | | | double    | 
@@ -111,28 +96,13 @@ primitive types and encoding:
 +----------+ | +-----------+ | +-----------+ | +-----------+ | +-----------+ | 
+-----------+ | +-----------+ 
              |               |               |               |               | 
              |               
 </pre>
-</div></div>
-
-
-<h2 id="OpenWireVersion2Specification-WireFormatNegotiation">Wire Format 
Negotiation</h2>
-
-<p>OpenWire is an extensible in that it supports adding new encoding options 
while still being backward compatible with previous versions of the protocol.  
Every OpenWire protocol session initially starts with all encoding options 
turned off and at version 1 of command marshalers.  An initial WIREFORMAT_INFO 
command is exchanged between the two nodes so that additional encoding features 
can be enabled.  If both sides request an encoding feature to be enabled then 
it will be enabled.  The command marshalers used will be the highest version 
that they both support.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-+-------------------------+ +---------+  +---------+      +---------+
+</div></div><h2 id="OpenWireVersion2Specification-WireFormatNegotiation">Wire 
Format Negotiation</h2><p>OpenWire is an extensible in that it supports adding 
new encoding options while still being backward compatible with previous 
versions of the protocol. Every OpenWire protocol session initially starts with 
all encoding options turned off and at version 1 of command marshalers. An 
initial WIREFORMAT_INFO command is exchanged between the two nodes so that 
additional encoding features can be enabled. If both sides request an encoding 
feature to be enabled then it will be enabled. The command marshalers used will 
be the highest version that they both support.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">+-------------------------+ +---------+  +---------+    
  +---------+
 | WIREFORMAT_INFO command | | command |  | command | .... | command |
 +-------------------------+ +---------+  +---------+      +---------+
 </pre>
-</div></div>
-
-<h2 id="OpenWireVersion2Specification-CommandEncoding">Command Encoding</h2>
-
-<p>Every command is encoded as follows:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-command encoding:
+</div></div><h2 id="OpenWireVersion2Specification-CommandEncoding">Command 
Encoding</h2><p>Every command is encoded as follows:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">command encoding:
 [=If SizePrefixDisabled =] 
 [ option is not enabled. ]
 [ +------+               ] +------+-------------------------+
@@ -142,37 +112,8 @@ command encoding:
 [ +------+               ] +------+-------------------------+
 [========================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> size </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Holds how many subsequent bytes are in the 
the command </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> type </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Command type identifier </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 
command-specific-fields</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The data for the command. It is encoding depends on 
the type used </p></td></tr></tbody></table></div>
-
-
-<p>If a command type does not have any command specific content, then size 
would be 1.</p>
-
-<p>Prefixing the size on every command is done to aid in non-blocking IO 
processing so that receiver can easily determine when a whole command has been 
received and can be processed.  But finding out the size of command takes 
additional buffering on the sender size and is not needed if the receiver is 
doing blocking IO. If the SizePrefixDisabled option is enabled after the 
exchange of WIREFORMAT_INFO packets, then every subsequent command will not 
have the size prefixed.</p>
-
-
-<h2 id="OpenWireVersion2Specification-CommandTypes">Command Types</h2>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Type Identifier </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Command </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>WIREFORMAT_INFO                   </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>2</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>BROKER_INFO                       
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>3</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_INFO                   </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><
 td colspan="1" rowspan="1" class="confluenceTd"><p>4</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>SESSION_INFO                      
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>5</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONSUMER_INFO                     </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>6</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>PRODUCER_INFO                     
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>7</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>TRANSACTION_INFO                  </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>8</p></td><td 
 colspan="1" rowspan="1" class="confluenceTd"><p>DESTINATION_INFO               
   </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>9</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>REMOVE_SUBSCRIPTION_INFO          </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>KEEP_ALIVE_INFO                  
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>11</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SHUTDOWN_INFO                    </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>12</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>REMOVE_INFO     
                  </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>14</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONTROL_COMMAND                  </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>15</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>FLUSH_COMMAND                    
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>16</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_ERROR                 </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>17</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>CONSUMER_CONTROL                 
</p></td><td colspan="1" rowspan="1" class="conf
 luenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>18</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_CONTROL               </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>21</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>MESSAGE_DISPATCH                 
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>22</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>MESSAGE_ACK                      </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>23</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_MESSAGE                 
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>24</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_BYTES_MESSAGE           </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>25</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_MAP_MESSAGE             
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>26</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_OBJECT_MESSAGE          </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>27</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_STREAM_MESSAGE          
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>28</p></td><td colspan="1" rowspan="1" cl
 ass="confluenceTd"><p>ACTIVEMQ_TEXT_MESSAGE            </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>30</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>RESPONSE                         
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>31</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>EXCEPTION_RESPONSE               </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>32</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>DATA_RESPONSE                    
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>33</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DATA_ARRAY_RESPONSE              </p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>34</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>INTEGER_RESPONSE                 
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>40</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DISCOVERY_EVENT                  </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>50</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>JOURNAL_ACK                      
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>52</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>JOURNAL_REMOVE                   </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td
 ></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>53</p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>JOURNAL_TRACE                 
 >   </p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>54</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>JOURNAL_TRANSACTION              </p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>55</p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>DURABLE_SUBSCRIPTION_INFO        
 ></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>60</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>PARTIAL_COMMAND                  </p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>61<
 /p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>PARTIAL_LAST_COMMAND             </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>65</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>REPLAY                           
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>70</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BYTE_TYPE                        </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>71</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>CHAR_TYPE                        
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>72</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SHORT
 _TYPE                       </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>73</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>INTEGER_TYPE                     </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>74</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>LONG_TYPE                        
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>75</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DOUBLE_TYPE                      </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>76</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>FLOAT_TYPE                       
</p></td><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>77</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>STRING_TYPE                      </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>78</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>BOOLEAN_TYPE                     
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>79</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BYTE_ARRAY_TYPE                  </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>90</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>MESSAGE_DISPATCH_NOTIFICATION    
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" r
 owspan="1" class="confluenceTd"><p>91</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>NETWORK_BRIDGE_FILTER            </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>100</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_QUEUE                  
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>101</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_TOPIC                  </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>102</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_TEMP_QUEUE             
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>103</p></td><td colspan="1" ro
 wspan="1" class="confluenceTd"><p>ACTIVEMQ_TEMP_TOPIC             </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>110</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>MESSAGE_ID                      
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>111</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_LOCAL_TRANSACTION_ID   </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>112</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>ACTIVEMQ_XA_TRANSACTION_ID      
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>120</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_ID                  
  </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>121</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SESSION_ID                      </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>122</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>CONSUMER_ID                     
</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>123</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>PRODUCER_ID                     </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>124</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>BROKER_ID                       
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#1
 60;</p></td></tr></tbody></table></div>
-
-
-<h3 id="OpenWireVersion2Specification-CommandFieldEncoding">Command Field 
Encoding</h3>
-
-<p>All OpenWire commands use the same algorithm when encoding their fields.  
The algorithm restricts commands to use fields that are of the following 
type:</p>
-
-<ul><li>Java primitive types</li><li>String</li><li>Byte Arrays</li><li>N 
Sized Byte Arrays</li><li>Throwable</li><li>Nested OpenWire 
commands</li><li>Nested OpenWire command arrays</li><li>Cached Nested OpenWire 
commands</li></ul>
-
-
-<p>Notice that OpenWire commands can nest other OpenWire commands in it's 
fields.  Care must be taken that only acyclic graphs of commands are 
marshaled.</p>
-
-<h4 id="OpenWireVersion2Specification-StringTypeEncoding">String Type 
Encoding</h4>
-
-<p>Strings fields may be null. If it is null then it encodes to a single "0" 
byte.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-string encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>size</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Holds how many subsequent bytes are in the the 
command</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>type</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Command type identifier</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>command-specific-fields</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The data for the command. It is encoding 
depends on the type used</p></td></tr></tbody></table></div><p>If a command 
type does not have any command specific content, then size would be 
1.</p><p>Prefixing the size on every command is done to aid in non-blocking IO 
processing so that receiv
 er can easily determine when a whole command has been received and can be 
processed. But finding out the size of command takes additional buffering on 
the sender size and is not needed if the receiver is doing blocking IO. If the 
SizePrefixDisabled option is enabled after the exchange of WIREFORMAT_INFO 
packets, then every subsequent command will not have the size prefixed.</p><h2 
id="OpenWireVersion2Specification-CommandTypes">Command Types</h2><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Type Identifier</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Command</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>WIREFORMAT_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="conflue
 nceTd"><p>2</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BROKER_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>3</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>4</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SESSION_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>5</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONSUMER_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>6</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>PRODUCER_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#16
 0;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>7</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>TRANSACTION_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>8</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DESTINATION_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>9</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>REMOVE_SUBSCRIPTION_INFO</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>KEEP_ALIVE_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>11</p></td><td colspan="1" rowspan="1" 
class="confluenceT
 d"><p>SHUTDOWN_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>12</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>REMOVE_INFO</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>14</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONTROL_COMMAND</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>15</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>FLUSH_COMMAND</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>16</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_ERROR</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="con
 fluenceTd"><p>17</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONSUMER_CONTROL</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>18</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_CONTROL</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>21</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>MESSAGE_DISPATCH</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>22</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>MESSAGE_ACK</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>23</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_MESSAGE</p></td><td colspan="1" rowspan="1" 
class=
 "confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>24</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_BYTES_MESSAGE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>25</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_MAP_MESSAGE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>26</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_OBJECT_MESSAGE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>27</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_STREAM_MESSAGE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>28</p></td><td 
 colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_TEXT_MESSAGE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>30</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>RESPONSE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>31</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>EXCEPTION_RESPONSE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>32</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DATA_RESPONSE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>33</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DATA_ARRAY_RESPONSE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p
 ></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>34</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>INTEGER_RESPONSE</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>40</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>DISCOVERY_EVENT</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>50</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>JOURNAL_ACK</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>52</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>JOURNAL_REMOVE</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>53</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>JOURNAL_TRA
 CE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>54</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>JOURNAL_TRANSACTION</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>55</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DURABLE_SUBSCRIPTION_INFO</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>60</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>PARTIAL_COMMAND</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>61</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>PARTIAL_LAST_COMMAND</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" cla
 ss="confluenceTd"><p>65</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>REPLAY</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>70</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BYTE_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>71</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CHAR_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>72</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SHORT_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>73</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>INTEGER_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;
 </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>74</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>LONG_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>75</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>DOUBLE_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>76</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>FLOAT_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>77</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>STRING_TYPE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>78</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BOOLEAN_TYPE</p></td><t
 d colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>79</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>BYTE_ARRAY_TYPE</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>90</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>MESSAGE_DISPATCH_NOTIFICATION</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>91</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>NETWORK_BRIDGE_FILTER</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>100</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_QUEUE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluen
 ceTd"><p>101</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_TOPIC</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>102</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_TEMP_QUEUE</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>103</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_TEMP_TOPIC</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>110</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>MESSAGE_ID</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>111</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_LOCAL_TRANSACTION_ID</p></td><td colspan="1" 
rows
 pan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>112</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ACTIVEMQ_XA_TRANSACTION_ID</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>120</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONNECTION_ID</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>121</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>SESSION_ID</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>122</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CONSUMER_ID</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>123</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>PRODUCER_ID</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>124</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>BROKER_ID</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr></tbody></table></div><h3 
id="OpenWireVersion2Specification-CommandFieldEncoding">Command Field 
Encoding</h3><p>All OpenWire commands use the same algorithm when encoding 
their fields. The algorithm restricts commands to use fields that are of the 
following type:</p><ul><li>Java primitive types</li><li>String</li><li>Byte 
Arrays</li><li>N Sized Byte Arrays</li><li>Throwable</li><li>Nested OpenWire 
commands</li><li>Nested OpenWire command arrays</li><li>Cached Nested OpenWire 
commands</li></ul><p>Notice that OpenWire commands can nest other OpenWire 
commands in it's fields. Care must be taken that only acyclic graphs of 
commands are marshaled.</p><h
 4 id="OpenWireVersion2Specification-StringTypeEncoding">String Type 
Encoding</h4><p>Strings fields may be null. If it is null then it encodes to a 
single "0" byte.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">string encoding:
              [=If not-null is 1===========]
 +----------+ [ +-------+----------------+ ]
 | not-null | [ | size  | encoded-string | ]
@@ -181,18 +122,8 @@ string encoding:
 +----------+ [ +-------+----------------+ ]
              [============================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> not-null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 1 if the string is not null, 0 
if the string is null </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> size </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The number of bytes of the UTF-8 Encoded string 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
encoded-string </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
The UTF-8 encoded form of the string </p></td></tr></tbody></table></div>
-
-
-<h3 id="OpenWireVersion2Specification-ByteArrayTypeEncoding">Byte Array Type 
Encoding</h3>
-
-<p>Byte array fields may be null. If it is null then it encodes to a single 
"0" byte.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-byte-array encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>not-null</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1 if the string is not null, 0 if the 
string is null</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>size</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The number of bytes of the UTF-8 Encoded 
string</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>encoded-string</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The UTF-8 encoded form of the 
string</p></td></tr></tbody></table></div><h3 
id="OpenWireVersion2Specification-ByteArrayTypeEncoding">Byte Array Type 
Encoding</h3><p>Byte array fields may be null. If it is null then it encodes to 
a single "0" byte.</p><div class="code pane
 l pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">byte-array encoding:
              [=If not-null is 1========]
 +----------+ [ +------+--------------+ ]
 | not-null | [ | size | data         | ]
@@ -201,37 +132,16 @@ byte-array encoding:
 +----------+ [ +------+--------------+ ]
              [=========================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> not-null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 1 if the byte array is not 
null, 0 if it is null </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> size </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The number of bytes in the byte array 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> data 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The data of the 
byte array </p></td></tr></tbody></table></div>
-
-
-
-<h3 id="OpenWireVersion2Specification-NSizedByteArrayTypeEncoding">N Sized 
Byte Array Type Encoding</h3>
-
-<p>Fixed Size Byte array fields may NOT be null and their length must be N 
length.  Used for byte arrays that are always a fixed size.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-N-sized-byte-array encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>not-null</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1 if the byte array is not null, 0 if it is 
null</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>size</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The number of bytes in the byte 
array</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>data</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The data of the byte 
array</p></td></tr></tbody></table></div><h3 
id="OpenWireVersion2Specification-NSizedByteArrayTypeEncoding">N Sized Byte 
Array Type Encoding</h3><p>Fixed Size Byte array fields may NOT be null and 
their length must be N length. Used for byte arrays that are always a fixed si
 ze.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">N-sized-byte-array encoding:
 +-----------+
 | data      |
 +-----------+
 | N octects |
 +-----------+
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> data </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> The data of the byte array 
</p></td></tr></tbody></table></div>
-
-
-<h3 id="OpenWireVersion2Specification-ThrowableTypeEncoding">Throwable Type 
Encoding</h3>
-
-<p>Throwable fields may be null. If it is null then it encodes to a single "0" 
byte.</p>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-throwable encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>data</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The data of the byte 
array</p></td></tr></tbody></table></div><h3 
id="OpenWireVersion2Specification-ThrowableTypeEncoding">Throwable Type 
Encoding</h3><p>Throwable fields may be null. If it is null then it encodes to 
a single "0" byte.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">throwable encoding:
              [=If not-null is 
1===========================================================================]
              [                               [=If StackTraceEnabled option is 
enabled.==================] ]
              [                               [             [=Repeated size 
times======================] ] ]
@@ -244,20 +154,8 @@ throwable encoding:
              [                               
[==========================================================] ]
              
[============================================================================================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> not-null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 1 if the Throwable not null, 0 
if the Throwable is null </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> exception-name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The class name of the exception </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> message </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> The exception message 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> size 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The number of 
stack frames in the stack trace </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> cla
 ss </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The name of 
the class in a stack frame </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> method </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The name of the method in a stack frame 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> file   
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The name of the 
file in a stack frame </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> line-number </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The line number in a stack frame 
</p></td></tr></tbody></table></div>
-
-
-<p>If the StackTraceEnabled encoding option is enabled after the exchange of 
WIREFORMAT_INFO packets, then every Throwable filed will have stack trace data 
appended to it.</p>
-
-<h3 id="OpenWireVersion2Specification-NestedCommandTypeEncoding">Nested 
Command Type Encoding</h3>
-
-<p>Nested command fields may be null. If it is null then it encodes to a 
single "0" byte.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-nested-object encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>not-null</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1 if the Throwable not null, 0 if the 
Throwable is null</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>exception-name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The class name of the exception</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>message</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The exception message</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>size</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The number of stack frames in the stack 
trace</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>class</p></
 td><td colspan="1" rowspan="1" class="confluenceTd"><p>The name of the class 
in a stack frame</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>method</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The name of the method in a stack 
frame</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>file</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The name of the file in a stack 
frame</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>line-number</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The line number in a stack 
frame</p></td></tr></tbody></table></div><p>If the StackTraceEnabled encoding 
option is enabled after the exchange of WIREFORMAT_INFO packets, then every 
Throwable filed will have stack trace data appended to it.</p><h3 
id="OpenWireVersion2Specification-NestedCommandTypeEncoding">Nested Command 
Type Encoding</h3><p>Nested command fields may be null. If it is null then it 
encodes to a 
 single "0" byte.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">nested-object encoding:
              [=If not-null is 1===================]
 +----------+ [ +------+-------------------------+ ]
 | not-null | [ | type | command-specific-fields | ]
@@ -266,18 +164,8 @@ nested-object encoding:
 +----------+ [ +------+-------------------------+ ]
              [====================================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> not-null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 1 if the Throwable not null, 0 
if the Throwable is null </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> type </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Command type identifier </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 
command-specific-fields</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The data for the command. It is encoding depends on 
the type used </p></td></tr></tbody></table></div>
-
-
-<h3 id="OpenWireVersion2Specification-CachedNestedCommandTypeEncoding">Cached 
Nested Command Type Encoding</h3>
-
-<p>Nested Command types can be cached so that subsequent marshaling operations 
of the same object result in a smaller on the wire size.  By default the 
CacheEnabled option is not enabled and therefore standard nested-object 
encoding is used.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-cached-object-encoding:
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>not-null</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1 if the Throwable not null, 0 if the 
Throwable is null</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>type</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Command type identifier</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>command-specific-fields</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The data for the command. It is encoding 
depends on the type used</p></td></tr></tbody></table></div><h3 
id="OpenWireVersion2Specification-CachedNestedCommandTypeEncoding">Cached 
Nested Command Type Encoding</h3><p>Nested Command types can be cached so that 
subsequent marshaling oper
 ations of the same object result in a smaller on the wire size. By default the 
CacheEnabled option is not enabled and therefore standard nested-object 
encoding is used.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">cached-object-encoding:
 [=If CacheEnabled option is enabled=====================]
 [                       [=If new-value is 1===========] ]
 [ +-----------+-------+ [ +-------------------------+ ] ]
@@ -296,18 +184,7 @@ cached-object-encoding:
 [ +-------------------------+         ]
 [=====================================]
 </pre>
-</div></div>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Field </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> new-value </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 1 if the value is not in the 
cache, 0 if it already is in the cache </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> key </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Key used to identify the value in the cache 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
command-specific-fields</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The data for the command. It is encoding depends on 
the type used </p></td></tr></tbody></table></div>
-
-
-<h2 id="OpenWireVersion2Specification-LooseEncoding">Loose Encoding</h2>
-
-<p>The default encoding explained so far is called "loose encoding" and is the 
default encoding used when OpenWire if first initialized.  Loose encoding is 
simple to implement does not add much CPU overhead to the 
marshaling/unmarshaling process.  It is able to marshal an object graph in 
single pass of the object tree.</p>
-
-<h2 id="OpenWireVersion2Specification-TightEncoding">Tight Encoding</h2>
-
-<p>Another encoding option is supported by OpenWire which is called 
TightEncoding.  When tight encoding is used, it uses bit streams to marshal all 
the boolean values that would have taken up a byte in loose encoding to a bit 
in the bit stream.  To build the bit stream 2 passes through the object graph 
are taken so this is more CPU intensive marshaling process but it produces a 
smaller on the wire size.</p></div>
+</div></div><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Field</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>new-value</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1 if the value is not in the cache, 0 if it 
already is in the cache</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>key</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Key used to identify the value in the 
cache</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>command-specific-fields</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The data for the command. It is encoding 
depends on the type used</p></td></tr></tbody></table></div><h2 
id="OpenWireVersion2Specification-LooseEncoding">Loose Encoding</h2><p>The 
default encoding explained so far is called "loose encoding" and is the 
 default encoding used when OpenWire if first initialized. Loose encoding is 
simple to implement does not add much CPU overhead to the 
marshaling/unmarshaling process. It is able to marshal an object graph in 
single pass of the object tree.</p><h2 
id="OpenWireVersion2Specification-TightEncoding">Tight Encoding</h2><p>Another 
encoding option is supported by OpenWire which is called TightEncoding. When 
tight encoding is used, it uses bit streams to marshal all the boolean values 
that would have taken up a byte in loose encoding to a bit in the bit stream. 
To build the bit stream 2 passes through the object graph are taken so this is 
more CPU intensive marshaling process but it produces a smaller on the wire 
size.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to