activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r908132 [10/19] - in /websites/production/activemq/content: cache/ cms/
Date Mon, 05 May 2014 20:20:48 GMT
Modified: websites/production/activemq/content/cms/cms-api-overview.html
==============================================================================
--- websites/production/activemq/content/cms/cms-api-overview.html (original)
+++ websites/production/activemq/content/cms/cms-api-overview.html Mon May  5 20:20:46 2014
@@ -67,13 +67,13 @@
             <a shape="rect" style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" href="http://www.apache.org">ASF</a>
 	</div>
         </div>
-
+<p></p>
         <div class="top_red_bar">
           <div id="site-breadcrumbs">
 <a href="index.html">Index</a>&nbsp;&gt;&nbsp;<a href="overview.html">Overview</a>&nbsp;&gt;&nbsp;<a href="cms-api-overview.html">CMS API Overview</a>
           </div>
           <div id="site-quicklinks">
-<p><a shape="rect" href="download.html" title="Download">Download</a> | <a shape="rect" href="api.html" title="API">API</a> | <a shape="rect" href="source.html" title="Source">Source</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Forums</a> | <a shape="rect" href="support.html" title="Support">Support</a></p>
+<p><a shape="rect" href="download.html">Download</a> | <a shape="rect" href="api.html">API</a> | <a shape="rect" href="source.html">Source</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Forums</a> | <a shape="rect" href="support.html">Support</a></p>
           </div>
         </div>
 
@@ -81,59 +81,59 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1><a shape="rect" name="CMSAPIOverview-WhatisCMS%3F"></a>What is CMS?</h1>
+<div class="wiki-content maincontent"><h1 id="CMSAPIOverview-WhatisCMS?">What is CMS?</h1>
 
 <p>The CMS API is a C++ corollary to the JMS API in Java which is used to send and receive messages from clients spread out across a network or located on the same machine.&#160; In CMS we've made every attempt to maintain as much parity with the JMS api as possible, diverging only when a JMS feature depended strongly on features in the Java programming language itself.&#160; Even though there are some differences most are quite minor and for the most part CMS adheres to the JMS spec, so having a firm grasp on how JMS works should make using CMS that much easier.&#160;</p>
 
-<p>One of the first places to start if you are already familiar with JMS is to take a look at the CMS <a shape="rect" href="api.html" title="API">API documentation</a></p>
+<p>One of the first places to start if you are already familiar with JMS is to take a look at the CMS <a shape="rect" href="api.html">API documentation</a></p>
 
-<h1><a shape="rect" name="CMSAPIOverview-GettingStartedwithCMS"></a>Getting Started with CMS</h1>
+<h1 id="CMSAPIOverview-GettingStartedwithCMS">Getting Started with CMS</h1>
 
 <p>This section covers the basics of using the CMS API.  In order to aid in the discussion we assume here that you are using ActiveMQ-CPP to connect to an ActiveMQ Broker, of course with CMS you could also link to another implementation of the CMS API in your C++ application and connect to some other Message service.</p>
 
-<h2><a shape="rect" name="CMSAPIOverview-TheCMSConnectionFactory"></a>The CMS ConnectionFactory</h2>
+<h2 id="CMSAPIOverview-TheCMSConnectionFactory">The CMS ConnectionFactory</h2>
 
 <p>The first interface you will generally use in the CMS API is the ConnectionFactory.  A ConnectionFactory allows you to create CMS Connection objects which maintain a connection the some Messaging service, e.g. an ActiveMQ broker.</p>
 
-<p>The simplest way to obtain an instance of a CMS ConnectionFactory is to use the static method <b>createCMSConnectionFactory</b> that all CMS Provider libraries are required to implement.  The code snippet below demonstrates how to obtain a new ConnectionFactory:</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Connection Factory</b></div><div class="codeContent panelContent">
+<p>The simplest way to obtain an instance of a CMS ConnectionFactory is to use the static method <strong>createCMSConnectionFactory</strong> that all CMS Provider libraries are required to implement.  The code snippet below demonstrates how to obtain a new ConnectionFactory:</p>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Connection Factory</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-        cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+        cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 ]]></script>
 </div></div>
-<p>As you can see the <b>createCMSConnectionFactory</b> takes a single string parameter which is in the form of a URI that defines where the Connection that is created is to connect to as well as the protocol that should be used, TCP/IP in the case of the above example.  Additionally configuration information can be encoded in the URI.  Refer to the <a shape="rect" href="configuring.html" title="Configuring">Configuration</a> page for more information on the configuration parameters that can be passed to ActiveMQ-CPP via the URI.</p>
+<p>As you can see the <strong>createCMSConnectionFactory</strong> takes a single string parameter which is in the form of a URI that defines where the Connection that is created is to connect to as well as the protocol that should be used, TCP/IP in the case of the above example.  Additionally configuration information can be encoded in the URI.  Refer to the <a shape="rect" href="configuring.html">Configuration</a> page for more information on the configuration parameters that can be passed to ActiveMQ-CPP via the URI.</p>
 
 <p>Once you've created a ConnectionFactory the next thing to do is to create a CMS Connection using the ConnectionFactory.  A Connection is the Object that manages the client's connection to the Provider.  The next section covers the use of a CMS Connection, the code to create a Connection is shown below:</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Connection</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Connection</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
 ]]></script>
 </div></div>
 <p>Upon creation the Connection object attempts to connect to the CMS Provider, if the connection fails then an CMSException is thrown with a description of the error that occurred stored in its Message property.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-ConnectionsandAuthentication"></a>Connections and Authentication</h3>
+<h3 id="CMSAPIOverview-ConnectionsandAuthentication">Connections and Authentication</h3>
 
-<p>There are a couple versions of the <b>createConnection</b> method that allow you to specify login parameters for the newly created Connection.  The one you would use most often takes a user-name and password pair that is transmitted to the Broker for authentication.  Should the credentials be invalid a CMSException would be thrown.  The sample code below shows how to pass a user-name and password in when creating your Connection object.</p>
+<p>There are a couple versions of the <strong>createConnection</strong> method that allow you to specify login parameters for the newly created Connection.  The one you would use most often takes a user-name and password pair that is transmitted to the Broker for authentication.  Should the credentials be invalid a CMSException would be thrown.  The sample code below shows how to pass a user-name and password in when creating your Connection object.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Connection with Authentication</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Connection with Authentication</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection( "&lt;USERNAME&gt;", "&lt;PASSWORD&gt;") );
+std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection( &quot;&lt;USERNAME&gt;&quot;, &quot;&lt;PASSWORD&gt;&quot;) );
 ]]></script>
 </div></div>
 
-<p>If you don't want to hard code values into your source code or write code to read the login data from somewhere else there is another option for passing in the user-name and password, the URI that you pass to <b>createConnectionFactory</b> can be encoded so that the connectionFactory will read the values from the system environment when it parses the URI.  The example below shows how to create a connection factory with the login data set in the URI.</p>
+<p>If you don't want to hard code values into your source code or write code to read the login data from somewhere else there is another option for passing in the user-name and password, the URI that you pass to <strong>createConnectionFactory</strong> can be encoded so that the connectionFactory will read the values from the system environment when it parses the URI.  The example below shows how to create a connection factory with the login data set in the URI.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Connection Factory with URI values for Authentication data.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Connection Factory with URI values for Authentication data.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-        cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616?username=${USERNAME}&amp;password=${PASSWORD}" ) );
+        cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616?username=${USERNAME}&amp;password=${PASSWORD}&quot; ) );
 ]]></script>
 </div></div>
 
 <p>As you can see it is pretty simple to have values on the URI come from the system environment.  This method will work for any parameter that you can specify in the URI.</p>
 
-<h2><a shape="rect" name="CMSAPIOverview-CMSConnection"></a>CMS Connection</h2>
+<h2 id="CMSAPIOverview-CMSConnection">CMS Connection</h2>
 
 <p>The CMS Connection interface defines an object that is the client's active connection to the CMS provider.  In most cases the client will only create one connection object since it is considered a heavyweight object.</p>
 
@@ -141,13 +141,13 @@ std::auto_ptr&lt;cms::ConnectionFactory&
 <ul><li>It encapsulates an open connection with a JMS provider. It typically represents an open TCP/IP socket between a client and a provider service daemon.</li><li>Its creation is where client authentication takes place.</li><li>It can specify a unique client identifier.</li><li>It provides a ConnectionMetaData object.</li><li>It supports an optional ExceptionListener object.</li></ul>
 
 
-<p>A CMS Connection is created from a CMS ConnectionFactory as we saw previously.  If the ConnectionFactory create call is successful then the Connection object returned is connected to the CMS Provider.  The Connection object is created in a stopped state, no messages will be delivered to Message consumers that a client creates until the Connection is started.  Its normal to leave a Connection in the stopped state until the client has created the initial set of Sessions, Message Producers, and Message Consumers that it intends to use.  Once the setup phase of the client completes it should call the Connection's start method to begin receiving messages from the Provider.  Failing to call the <b>start</b> method is a very common error among new users of CMS and JMS clients, if you find you aren't receiving any messages the first thing to check is that you called <b>start</b>.</p>
+<p>A CMS Connection is created from a CMS ConnectionFactory as we saw previously.  If the ConnectionFactory create call is successful then the Connection object returned is connected to the CMS Provider.  The Connection object is created in a stopped state, no messages will be delivered to Message consumers that a client creates until the Connection is started.  Its normal to leave a Connection in the stopped state until the client has created the initial set of Sessions, Message Producers, and Message Consumers that it intends to use.  Once the setup phase of the client completes it should call the Connection's start method to begin receiving messages from the Provider.  Failing to call the <strong>start</strong> method is a very common error among new users of CMS and JMS clients, if you find you aren't receiving any messages the first thing to check is that you called <strong>start</strong>.</p>
 
 <p>After creating the Connection the client must create a CMS Session in order to create message producers and consumers.  The code snippet below puts together what we've seen so far and then shows how to create a CMS Session object from our Connection instance, the section that follows will discuss the CMS Session in more detail.</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Session</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Session</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
 
@@ -155,7 +155,7 @@ std::auto_ptr&lt;cms::Session&gt; sessio
 ]]></script>
 </div></div>
 
-<h2><a shape="rect" name="CMSAPIOverview-CMSSession"></a>CMS Session</h2>
+<h2 id="CMSAPIOverview-CMSSession">CMS Session</h2>
 
 <p>Once you've successfully created a CMS Connection the next thing you would normall do is create one or more CMS Session objects using your new Connectio instance.&#160; A Session is defined as a Single Threaded context for producing and consuming messages.&#160;</p>
 
@@ -166,15 +166,13 @@ std::auto_ptr&lt;cms::Session&gt; sessio
 <p>&#160;A session can create and service multiple message producers and   consumers.</p>
 
 <p>&#160;When a client creates a CMS session it must specify the mode in which the Session will acknowledge the messages that it receives and dispatches.&#160; The modes supported are summarized in the table below.</p>
-<div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Acknowledge Mode <br clear="none" class="atl-forced-newline"> </th><th colspan="1" rowspan="1" class="confluenceTh"> Description <br clear="none" class="atl-forced-newline"> </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> AUTO_ACKNOWLEDGE </td><td colspan="1" rowspan="1" class="confluenceTd"> With this acknowledgement mode, the session automatically acknowledges  a client's receipt of a message either when the session has successfully   returned from a call to receive or when the message   listener the session has called to process the message successfully   returns. <br clear="none" class="atl-forced-newline"> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> CLIENT_ACKNOWLEDGE </td><td colspan="1" rowspan="1" class="confluenceTd"> With this acknowledgement mode, the client acknowledges a consumed   message by calling the message's acknowledge method.   Acknowle
 dging a consumed message acknowledges all messages that the   session has consumed. When client acknowledgement mode is used, a client may build up a   large number of unacknowledged messages while attempting to process   them. A CMS provider should provide administrators with a way to   limit client overrun so that clients are not driven to resource   exhaustion and ensuing failure when some resource they are using   is temporarily blocked. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> DUPS_OK_ACKNOWLEDGE </td><td colspan="1" rowspan="1" class="confluenceTd"> This acknowledgement mode instructs the session to lazily acknowledge   the delivery of messages. This is likely to result in the delivery of   some duplicate messages if the JMS provider fails, so it should only be   used by consumers that can tolerate duplicate messages. Use of this    mode can reduce session overhead by minimizing the work the   session does to prevent duplicates. </td></tr><tr><td colspan
 ="1" rowspan="1" class="confluenceTd"> SESSION_TRANSACTED </td><td colspan="1" rowspan="1" class="confluenceTd"> Session is Transacted and the acknowledge of messages is handled internally. <br clear="none" class="atl-forced-newline"> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> INDIVIDUAL_ACKNOWLEDGE<br clear="none" class="atl-forced-newline"> </td><td colspan="1" rowspan="1" class="confluenceTd"> Acknowledges are applied to a single message only.&#160; Unlike CLIENT_ACKNOWLEDGE where the acknowledgement applies to all messages received up to that point for the entire session, this mode applied only to a single message allowing the client to be more selective about which messages are acknowledged.&#160; <br clear="none" class="atl-forced-newline"> </td></tr></tbody></table>
-</div>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Acknowledge Mode <br clear="none" class="atl-forced-newline"> </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description <br clear="none" class="atl-forced-newline"> </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> AUTO_ACKNOWLEDGE </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> With this acknowledgement mode, the session automatically acknowledges  a client's receipt of a message either when the session has successfully   returned from a call to receive or when the message   listener the session has called to process the message successfully   returns. <br clear="none" class="atl-forced-newline"> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> CLIENT_ACKNOWLEDGE </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> With this acknowledgement mode, the client acknowledges a consumed   m
 essage by calling the message's acknowledge method.   Acknowledging a consumed message acknowledges all messages that the   session has consumed. When client acknowledgement mode is used, a client may build up a   large number of unacknowledged messages while attempting to process   them. A CMS provider should provide administrators with a way to   limit client overrun so that clients are not driven to resource   exhaustion and ensuing failure when some resource they are using   is temporarily blocked. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> DUPS_OK_ACKNOWLEDGE </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> This acknowledgement mode instructs the session to lazily acknowledge   the delivery of messages. This is likely to result in the delivery of   some duplicate messages if the JMS provider fails, so it should only be   used by consumers that can tolerate duplicate messages. Use of this    mode can reduce session overhead by minimizing 
 the work the   session does to prevent duplicates. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> SESSION_TRANSACTED </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Session is Transacted and the acknowledge of messages is handled internally. <br clear="none" class="atl-forced-newline"> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> INDIVIDUAL_ACKNOWLEDGE<br clear="none" class="atl-forced-newline"> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Acknowledges are applied to a single message only.&#160; Unlike CLIENT_ACKNOWLEDGE where the acknowledgement applies to all messages received up to that point for the entire session, this mode applied only to a single message allowing the client to be more selective about which messages are acknowledged.&#160; <br clear="none" class="atl-forced-newline"> </p></td></tr></tbody></table></div>
 
 <p>In the previous section we showed you how to create a session, lets take a look at that example again here:</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Session</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Session</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
 
@@ -182,10 +180,10 @@ std::auto_ptr&lt;cms::Session&gt; sessio
 ]]></script>
 </div></div>
 <p>In this code snippet the Session is created using the createSession with no arguments, this creates a Session that is in the AUTO_ACKNOWLEDGE mode.  To create a Session with one of the modes listed above there is a second create method in the CMS Session interface that takes a single argument specifying the mode, lets take a look at an example:</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Session with user specified Ack Mode</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Session with user specified Ack Mode</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
 
@@ -195,29 +193,27 @@ std::auto_ptr&lt;cms::Session&gt; sessio
 </div></div>
 <p>As you can see there's not much difference here, just specify the mode you want for acknowledgement and you are ready to create your Session resources, in the next few section we will walk through the types of objects that you can create from a Session and show you the basics of using them.</p>
 
-<h2><a shape="rect" name="CMSAPIOverview-ObjectscreatedfromCMSSession"></a>Objects created from CMS Session</h2>
+<h2 id="CMSAPIOverview-ObjectscreatedfromCMSSession">Objects created from CMS Session</h2>
 
 <p>In this section we cover the types of objects that are created from an instance of a CMS Session object.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-CMSMessages"></a>CMS Messages</h3>
+<h3 id="CMSAPIOverview-CMSMessages">CMS Messages</h3>
 
-<p>As its name implies CMS exists to send and receive messages, so it makes sense to start by covering the message that you can send and receive using CMS.  There are four main Message types supported by CMS at the the time of this writing, others may follow but we will stick to the ones that are fully supported right now.  The table below shows the message type along with a brief description of the Message's use, for complete details on the interface and usage of a particular message type, see the <a shape="rect" href="api.html" title="API">CMS API Documentation</a>.</p>
-<div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Message Type </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Message </td><td colspan="1" rowspan="1" class="confluenceTd"> The Message interface defines the simplest CMS Message.  Unlike the rest of the CMS Messages the Message type has no body or payload, it can however contains properties set via a collection of property setters that encompass the basic types in C++.  The Message interface is the root of all the Message types in CMS. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> TextMessage </td><td colspan="1" rowspan="1" class="confluenceTd"> The TextMessage class carries a payload consisting of a C++ string.  The TextMessage interface extends the Message interface adding methods for setting and getting the payload text and retains the support for setting Message properties.  Since Java O
 bjects can't be sent to a CMS client from a JMS client directly the Text message is an ideal way to serialize the object to XML and send it to a JMS client. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> BytesMessage </td><td colspan="1" rowspan="1" class="confluenceTd"> The BytesMessage payload consists of a series of uninterrupted bytes which the receiver is responsible for interpreting.  The BytesMessage adds methods for getting and setting byte array to the standard set of Message interface methods. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> MapMessage </td><td colspan="1" rowspan="1" class="confluenceTd"> The Map message payload is a set of Name / Value pairs.  The Name is a C++ string type and the value is a C++ primitive type or string. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> StreamMessage<br clear="none" class="atl-forced-newline"> </td><td colspan="1" rowspan="1" class="confluenceTd"> The Stream Message body cons
 ists of a list of self describing primitive types.&#160; The StreamMessage interface provides accessor methods that can read and write the primitive types to/from the message.&#160; The read methods allow primitive type conversion when the conversion would result in no loss of data.<br clear="none" class="atl-forced-newline"> </td></tr></tbody></table>
-</div>
+<p>As its name implies CMS exists to send and receive messages, so it makes sense to start by covering the message that you can send and receive using CMS.  There are four main Message types supported by CMS at the the time of this writing, others may follow but we will stick to the ones that are fully supported right now.  The table below shows the message type along with a brief description of the Message's use, for complete details on the interface and usage of a particular message type, see the <a shape="rect" href="api.html">CMS API Documentation</a>.</p>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Message Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Message </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The Message interface defines the simplest CMS Message.  Unlike the rest of the CMS Messages the Message type has no body or payload, it can however contains properties set via a collection of property setters that encompass the basic types in C++.  The Message interface is the root of all the Message types in CMS. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> TextMessage </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The TextMessage class carries a payload consisting of a C++ string.  The TextMessage interface extends the Message interface adding methods for setting and getting the payload text and ret
 ains the support for setting Message properties.  Since Java Objects can't be sent to a CMS client from a JMS client directly the Text message is an ideal way to serialize the object to XML and send it to a JMS client. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> BytesMessage </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The BytesMessage payload consists of a series of uninterrupted bytes which the receiver is responsible for interpreting.  The BytesMessage adds methods for getting and setting byte array to the standard set of Message interface methods. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> MapMessage </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The Map message payload is a set of Name / Value pairs.  The Name is a C++ string type and the value is a C++ primitive type or string. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> StreamMessage<br clear="none" class="atl-for
 ced-newline"> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The Stream Message body consists of a list of self describing primitive types.&#160; The StreamMessage interface provides accessor methods that can read and write the primitive types to/from the message.&#160; The read methods allow primitive type conversion when the conversion would result in no loss of data.<br clear="none" class="atl-forced-newline"> </p></td></tr></tbody></table></div>
 
 
 <p>Now that we've seen the types of Message's we can create lets see how to actually create them and explore some of the operations that are available in the Message classes.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-CreatingaMessage"></a>Creating a Message</h3>
+<h3 id="CMSAPIOverview-CreatingaMessage">Creating a Message</h3>
 
 <p>As you may have already guessed, Messages are created using the CMS Session instance we created previously.  The Session supplies methods for creating each of the four Message types we covered above.  The Session is the Factory that create the providers implementation of the Message interfaces defined in CMS, it knows how to configure the internal data structures and prevents the client from being tied to the provider implementation directly, this is why we have to use the Session to create a Message object instead of creating them directly.  Lets take a look at a code snippet that create a TextMessage instance and sets some properties on that Message.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a TextMessage using a CMS Session instance.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a TextMessage using a CMS Session instance.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // Create the ConnectionFactory
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 // Create a Connection
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
@@ -229,33 +225,31 @@ std::auto_ptr&lt;cms::Session&gt; sessio
 std::auto_ptr&lt;cms::TextMessage&gt; textMessage( session-&gt;createTextMessage() );
 
 // Set the payload
-textMessage-&gt;setText( "Payload Text" );
+textMessage-&gt;setText( &quot;Payload Text&quot; );
 
 // Set some Properties
-textMessage-&gt;setStringProperty( "USER_NAME", "Steve" );
-textMessage-&gt;setIntProperty( "USER_CODE", 42 );
+textMessage-&gt;setStringProperty( &quot;USER_NAME&quot;, &quot;Steve&quot; );
+textMessage-&gt;setIntProperty( &quot;USER_CODE&quot;, 42 );
 
 ]]></script>
 </div></div>
 
-<p>As you can see from the code above creating a TextMessage is much like creating a Session or Connection instance, you just call the <b>createTextMessage</b> in your instance of a CMS Session and you get back a new TextMessage pointer that you can then populate with text and properties.</p>
+<p>As you can see from the code above creating a TextMessage is much like creating a Session or Connection instance, you just call the <strong>createTextMessage</strong> in your instance of a CMS Session and you get back a new TextMessage pointer that you can then populate with text and properties.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-CMSDestinations"></a>CMS Destinations</h3>
+<h3 id="CMSAPIOverview-CMSDestinations">CMS Destinations</h3>
 
 <p>As its name implies the CMS Destination interface defines an object that represents an endpoint that the Messages are routed to by the Messaging broker.  Clients create Destinations and send messages to them or wait for messages to be received on a destination they have subscribed to.  There are two basic types of Destinations in CMS, the Topic and the Queue, there are two subtypes of these the Temporary Topic and Temporary Queue.  The table below summarizes the four different Destination types.</p>
 
-<div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Destination Type </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Topic </td><td colspan="1" rowspan="1" class="confluenceTd"> In CMS a Topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Queue </td><td colspan="1" rowspan="1" class="confluenceTd"> A CMS Queue implements load balancer semantics. A single message will be received by exactly one consumer. If there are no consumers available at the time the message is sent it will be kept until a consumer is available that can process the mes
 sage. If a consumer receives a message and does not acknowledge it before closing then the message will be redelivered to another consumer. A queue can have many consumers with messages load balanced across the available consumers. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> TemporaryTopic </td><td colspan="1" rowspan="1" class="confluenceTd"> A TemporaryTopic object is a unique Topic object created for the duration of a Connection. It is a system-defined topic that can be consumed only by the Connection that created it. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> TemporaryQueue </td><td colspan="1" rowspan="1" class="confluenceTd"> A TemporaryQueue object is a unique Queue object created for the duration of a Connection. It is a system-defined queue that can be consumed only by the Connection that created it. </td></tr></tbody></table>
-</div>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Destination Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Topic </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> In CMS a Topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Queue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A CMS Queue implements load balancer semantics. A single message will be received by exactly one consumer. If there are no consumers available at the time the message is sent it will 
 be kept until a consumer is available that can process the message. If a consumer receives a message and does not acknowledge it before closing then the message will be redelivered to another consumer. A queue can have many consumers with messages load balanced across the available consumers. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> TemporaryTopic </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A TemporaryTopic object is a unique Topic object created for the duration of a Connection. It is a system-defined topic that can be consumed only by the Connection that created it. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> TemporaryQueue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A TemporaryQueue object is a unique Queue object created for the duration of a Connection. It is a system-defined queue that can be consumed only by the Connection that created it. </p></td></tr></tbody></table></div>
 
 
 <p>Now that we've seen what the destination types are, lets look at a code snippet showing how to create a Destination object.  The example below shows how to create a Topic instance using what should now be a pretty familiar pattern.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a Topic from a CMS Session object</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a Topic from a CMS Session object</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // Create the ConnectionFactory
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 // Create a Connection
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
@@ -264,22 +258,22 @@ std::auto_ptr&lt;cms::Connection&gt; con
 std::auto_ptr&lt;cms::Session&gt; session( connection-&gt;createSession();
 
 // Now create a Topic
-std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( "EXAMPLE-TOPIC" ) );
+std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( &quot;EXAMPLE-TOPIC&quot; ) );
 
 ]]></script>
 </div></div>
 
 <p>Creating a Topic or Queue requires passing a name for the Destination, the name is similar to an address, messages sent the the "EXAMPLE-TOPIC" destination are received by clients that have subscribed to that same Destination.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-CMSMessageConsumer"></a>CMS MessageConsumer</h3>
+<h3 id="CMSAPIOverview-CMSMessageConsumer">CMS MessageConsumer</h3>
 
 <p>Now that we've covered how to create messages and destinations we will look at creating a CMS MessageConsumer.  The MessageConsumer allows the client application to receive messages sent by other clients to topics or queues.  Before we talk about receiving Messages with the consumer lets first look at how one is created.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a MessageConsumer from a CMS Session object</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a MessageConsumer from a CMS Session object</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // Create the ConnectionFactory
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 // Create a Connection
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
@@ -288,7 +282,7 @@ std::auto_ptr&lt;cms::Connection&gt; con
 std::auto_ptr&lt;cms::Session&gt; session( connection-&gt;createSession();
 
 // Now create a Topic
-std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( "EXAMPLE-TOPIC" ) );
+std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( &quot;EXAMPLE-TOPIC&quot; ) );
 
 // Now create the Consumer
 std::auto_ptr&lt;cms::MessageConsumer&gt; myConsumer( session-&gt;createConsumer( myTopic ) );
@@ -296,11 +290,11 @@ std::auto_ptr&lt;cms::MessageConsumer&gt
 ]]></script>
 </div></div>
 
-<p>As you can see the MessageConsumer is created by calling <b>createConsumer</b> from an instance of a CMS Session object.  The MessageConsumer is given a Destination to listen for Messages on at the time you create it.  Once you create a MessageConsumer its time to start using it to receive messages, the MessageConsumer two methods for receiving messages, one is synchronous and the other is asynchronous.</p>
+<p>As you can see the MessageConsumer is created by calling <strong>createConsumer</strong> from an instance of a CMS Session object.  The MessageConsumer is given a Destination to listen for Messages on at the time you create it.  Once you create a MessageConsumer its time to start using it to receive messages, the MessageConsumer two methods for receiving messages, one is synchronous and the other is asynchronous.</p>
 
 <p>The synchronous method of receiving Messages involves a call the to the consumers receive method.  A call to receive will block until a Message is received on the Destination in question if no time-out is given, or will return NULL if the time-out given elapses and no new Messages arrive.  Lets take a look at a simple example of a synchronous message polling loop using CMS.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Synchronous Polling with infinite wait.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Synchronous Polling with infinite wait.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 while( !done ) {
 
@@ -312,9 +306,9 @@ while( !done ) {
 ]]></script>
 </div></div>
 
-<p>As you can see in the code above we called the MessageConsumer's <b>receive</b> method expecting that it will return a new Message object at some point.  The code here will block until a new message is received.  This sort of approach assumes that your program has nothing else that it needs to do until a message arrives, however there is an alternative should your application need to perform other processing.  The code sample below shows a polling loop that uses the MessageConsumer's <b>receiveNoWait</b> method to poll and return immediately to allow for other processing to occur.</p>
+<p>As you can see in the code above we called the MessageConsumer's <strong>receive</strong> method expecting that it will return a new Message object at some point.  The code here will block until a new message is received.  This sort of approach assumes that your program has nothing else that it needs to do until a message arrives, however there is an alternative should your application need to perform other processing.  The code sample below shows a polling loop that uses the MessageConsumer's <strong>receiveNoWait</strong> method to poll and return immediately to allow for other processing to occur.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Synchronous Polling with no wait.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Synchronous Polling with no wait.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 while( !done ) {
 
@@ -330,9 +324,9 @@ while( !done ) {
 ]]></script>
 </div></div>
 
-<p>The asynchronous method involves implementing the CMS MessageListener interface and passing an instance of your implementation to the MessageConsumer's <b>setMessageListener</b> method.  When a new message arrives your listener's <b>onMessage</b> method will be called by the consumer in the context of another thread to allow you to process the Message received.  Below is a code snippet that demonstrates implementing the MessageListener interface.</p>
+<p>The asynchronous method involves implementing the CMS MessageListener interface and passing an instance of your implementation to the MessageConsumer's <strong>setMessageListener</strong> method.  When a new message arrives your listener's <strong>onMessage</strong> method will be called by the consumer in the context of another thread to allow you to process the Message received.  Below is a code snippet that demonstrates implementing the MessageListener interface.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Simple MessageListener Implementation.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Simple MessageListener Implementation.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 class SimpleListener : public cms::MessageListener {
 
@@ -340,15 +334,15 @@ class SimpleListener : public cms::Messa
 
         const TextMessage* textMessage =
             dynamic_cast&lt; const TextMessage* &gt;( message );
-        string text = "";
+        string text = &quot;&quot;;
 
         if( textMessage != NULL ) {
             text = textMessage-&gt;getText();
         } else {
-            text = "NOT A TEXTMESSAGE!";
+            text = &quot;NOT A TEXTMESSAGE!&quot;;
         }
 
-        printf( "Message Received: %s\n", text.c_str() );
+        printf( &quot;Message Received: %s\n&quot;, text.c_str() );
 
     }
 };
@@ -356,11 +350,11 @@ class SimpleListener : public cms::Messa
 ]]></script>
 </div></div>
 
-<p>In the sample above we create a new class called SimpleListener that prints the contents of a TextMessage when received, or print an message indicating that it did not receive a TextMessage as it had expected to.  Notice that the <b>onMessage</b> method receives a pointer to the base Message interface and we then attempt to dynamic cast to the type we think we should have received.  This allows your code to process multiple message types in one method.  The pointer passed is owned by the caller or onMessage so you shouldn't store it or delete it, if you need to keep a copy of the Message around you must create a copy by calling Message's <b>clone</b> method.</p>
+<p>In the sample above we create a new class called SimpleListener that prints the contents of a TextMessage when received, or print an message indicating that it did not receive a TextMessage as it had expected to.  Notice that the <strong>onMessage</strong> method receives a pointer to the base Message interface and we then attempt to dynamic cast to the type we think we should have received.  This allows your code to process multiple message types in one method.  The pointer passed is owned by the caller or onMessage so you shouldn't store it or delete it, if you need to keep a copy of the Message around you must create a copy by calling Message's <strong>clone</strong> method.</p>
 
 <p>Now that we have a MessageListener implementation to work with its time to see how to setup asynchronous consumption using the MessageConsumer we created previously.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Setting up Async Consumption.</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Setting up Async Consumption.</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 SimpleListener listener;
 
@@ -371,15 +365,15 @@ myConsumer-&gt;setMessageListener( &amp;
 
 <p>That's it, we will now receive the messages sent to the Destination we created in the onMessage method of our SimpleListener instance.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-CMSMessageProducer"></a>CMS MessageProducer</h3>
+<h3 id="CMSAPIOverview-CMSMessageProducer">CMS MessageProducer</h3>
 
 <p>We've seen how to consume Messages now how do we produce them in the first place?  The answer is the CMS MessageProducer which is used to send messages to the broker for distribution to the various clients listening for Messages on the topic or queue.  Creating a MessageProducer is much the same as creating a MessageConsumer, you first create your Connection, Session, and Destination objects then use the Session to create a MessageProducer.  The code snippet below demonstrates how to create a MessageProducer.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Creating a MessageProducer from a CMS Session object</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating a MessageProducer from a CMS Session object</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // Create the ConnectionFactory
 std::auto_ptr&lt;cms::ConnectionFactory&gt; connectionFactory(
-    cms::ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" ) );
+    cms::ConnectionFactory::createCMSConnectionFactory( &quot;tcp://127.0.0.1:61616&quot; ) );
 
 // Create a Connection
 std::auto_ptr&lt;cms::Connection&gt; connection( connectionFactory-&gt;createConnection() );
@@ -388,7 +382,7 @@ std::auto_ptr&lt;cms::Connection&gt; con
 std::auto_ptr&lt;cms::Session&gt; session( connection-&gt;createSession();
 
 // Now create a Topic
-std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( "EXAMPLE-TOPIC" ) );
+std::auto_ptr&lt;cms::Topic&gt; myTopic( session-&gt;createTopic( &quot;EXAMPLE-TOPIC&quot; ) );
 
 // Now create the Consumer
 std::auto_ptr&lt;cms::MessageProducer&gt; myProducer( session-&gt;createProducer( myTopic ) );
@@ -396,19 +390,19 @@ std::auto_ptr&lt;cms::MessageProducer&gt
 ]]></script>
 </div></div>
 
-<h2><a shape="rect" name="CMSAPIOverview-CompleteExamples"></a>Complete Examples</h2>
+<h2 id="CMSAPIOverview-CompleteExamples">Complete Examples</h2>
 
 <p>Now that we've covered most of the basics of the CMS API its time to take a look at some complete examples that demonstrate how you might use the CMS API in your own application.  The first example will show how to create a simple Asynchronous consumer that can receive TextMessage objects from an ActiveMQ broker, then in the second example we will look at a simple producer that publishes TextMessage objects to the destination that our consumer is listening on.</p>
 
-<h3><a shape="rect" name="CMSAPIOverview-SimpleAsynchronousConsumer"></a>Simple Asynchronous Consumer</h3>
+<h3 id="CMSAPIOverview-SimpleAsynchronousConsumer">Simple Asynchronous Consumer</h3>
 
-<p>In the Simple Asnychronous Consumer example we wrap the CMS API usage in a class called SimpleAsyncConsumer.  This class exposes a single constructor that allows the user to create an instance of the class that connects to a particular broker and destination and whether the destination is a Queue or Topic.  The user can also specify the Acknowledgement Mode shoukd be <b>CLIENT_ACKNOWLEDGE</b> instaned of the default <b>AUTO_ACKNOWLEDGE</b> mode.</p>
+<p>In the Simple Asnychronous Consumer example we wrap the CMS API usage in a class called SimpleAsyncConsumer.  This class exposes a single constructor that allows the user to create an instance of the class that connects to a particular broker and destination and whether the destination is a Queue or Topic.  The user can also specify the Acknowledgement Mode shoukd be <strong>CLIENT_ACKNOWLEDGE</strong> instaned of the default <strong>AUTO_ACKNOWLEDGE</strong> mode.</p>
 
 <p>Once an instance of this class is created the user calls the <em>runConsumer</em> method to start listening on the specified destination.  The <em>runConsumer</em> method creates a Connection to the broker and start a new Session configured with the configured Acknowledgement mode.  Once a Session is created a new Consumer can then be created and attached to the configued Destination.  Since we want to listen asynchronously for new messages the SimpleAsyncConsumer inherits from cms::MessageListener so that it can register itself as a Message Listener with the MessageConsumer created in <em>runConsumer</em>.</p>
 
 <p>After the <em>runConsumer</em> method returns the main method waits for user input to exit, all messages received while the application is running will be dispatched to the onMessage method of SimpleAsyncConsumer and if the message is a TextMessage its contents will be printed onscreen.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>A Simple Asynchronous Consumer example</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>A Simple Asynchronous Consumer example</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 
 /*
@@ -416,13 +410,13 @@ std::auto_ptr&lt;cms::MessageProducer&gt
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
+ * (the &quot;License&quot;); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
@@ -556,19 +550,19 @@ public:
             count++;
             const TextMessage* textMessage =
                 dynamic_cast&lt; const TextMessage* &gt;( message );
-            string text = "";
+            string text = &quot;&quot;;
 
             if( textMessage != NULL ) {
                 text = textMessage-&gt;getText();
             } else {
-                text = "NOT A TEXTMESSAGE!";
+                text = &quot;NOT A TEXTMESSAGE!&quot;;
             }
 
             if( clientAck ) {
                 message-&gt;acknowledge();
             }
 
-            printf( "Message #%d Received: %s\n", count, text.c_str() );
+            printf( &quot;Message #%d Received: %s\n&quot;, count, text.c_str() );
         } catch (CMSException&amp; e) {
             e.printStackTrace();
         }
@@ -577,16 +571,16 @@ public:
     // If something bad happens you see it here as this class is also been
     // registered as an ExceptionListener with the connection.
     virtual void onException( const CMSException&amp; ex AMQCPP_UNUSED ) {
-        printf("CMS Exception occurred.  Shutting down client.\n");
+        printf(&quot;CMS Exception occurred.  Shutting down client.\n&quot;);
         exit(1);
     }
 
     virtual void transportInterrupted() {
-        std::cout &lt;&lt; "The Connection's Transport has been Interrupted." &lt;&lt; std::endl;
+        std::cout &lt;&lt; &quot;The Connection&#39;s Transport has been Interrupted.&quot; &lt;&lt; std::endl;
     }
 
     virtual void transportResumed() {
-        std::cout &lt;&lt; "The Connection's Transport has been Restored." &lt;&lt; std::endl;
+        std::cout &lt;&lt; &quot;The Connection&#39;s Transport has been Restored.&quot; &lt;&lt; std::endl;
     }
 
 private:
@@ -613,9 +607,9 @@ int main(int argc AMQCPP_UNUSED, char* a
 
     activemq::library::ActiveMQCPP::initializeLibrary();
 
-    std::cout &lt;&lt; "=====================================================\n";
-    std::cout &lt;&lt; "Starting the example:" &lt;&lt; std::endl;
-    std::cout &lt;&lt; "-----------------------------------------------------\n";
+    std::cout &lt;&lt; &quot;=====================================================\n&quot;;
+    std::cout &lt;&lt; &quot;Starting the example:&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; &quot;-----------------------------------------------------\n&quot;;
 
     // Set the URI to point to the IPAddress of your broker.
     // add any optional params to the url to enable things like
@@ -625,14 +619,14 @@ int main(int argc AMQCPP_UNUSED, char* a
     //  http://activemq.apache.org/cms/
     //
     std::string brokerURI =
-        "failover:(tcp://127.0.0.1:61616)";
+        &quot;failover:(tcp://127.0.0.1:61616)&quot;;
 
     //============================================================
     // This is the Destination Name and URI options.  Use this to
     // customize where the consumer listens, to have the consumer
-    // use a topic or queue set the 'useTopics' flag.
+    // use a topic or queue set the &#39;useTopics&#39; flag.
     //============================================================
-    std::string destURI = "TEST.FOO"; //?consumer.prefetchSize=1";
+    std::string destURI = &quot;TEST.FOO&quot;; //?consumer.prefetchSize=1&quot;;
 
     //============================================================
     // set to true to use topics instead of queues
@@ -654,15 +648,15 @@ int main(int argc AMQCPP_UNUSED, char* a
     consumer.runConsumer();
 
     // Wait to exit.
-    std::cout &lt;&lt; "Press 'q' to quit" &lt;&lt; std::endl;
-    while( std::cin.get() != 'q') {}
+    std::cout &lt;&lt; &quot;Press &#39;q&#39; to quit&quot; &lt;&lt; std::endl;
+    while( std::cin.get() != &#39;q&#39;) {}
 
     // All CMS resources should be closed before the library is shutdown.
     consumer.close();
 
-    std::cout &lt;&lt; "-----------------------------------------------------\n";
-    std::cout &lt;&lt; "Finished with the example." &lt;&lt; std::endl;
-    std::cout &lt;&lt; "=====================================================\n";
+    std::cout &lt;&lt; &quot;-----------------------------------------------------\n&quot;;
+    std::cout &lt;&lt; &quot;Finished with the example.&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; &quot;=====================================================\n&quot;;
 
     activemq::library::ActiveMQCPP::shutdownLibrary();
 }
@@ -670,11 +664,11 @@ int main(int argc AMQCPP_UNUSED, char* a
 ]]></script>
 </div></div>
 
-<h3><a shape="rect" name="CMSAPIOverview-SimpleProducer"></a>Simple Producer</h3>
+<h3 id="CMSAPIOverview-SimpleProducer">Simple Producer</h3>
 
-<p>Much like the Simple Asynchronous Consumer example the Simple Producer example wraps up the CMS API detials needed to create a producer into a class called <b>SimpleProducer</b>.  This class exposes a simillar interface to the consumer example, there is one constructor that allows an instance to be created with configuration options for the broker and destination as well as the number of messages to send to the configured destination.  Once created the client code simply calls the SimpleProducer's <em>run</em> method to publish the specified number of messages.  Once the <em>run</em> method completes the client is free to close the SimpleProducer which cleans up the allocated CMS resources, once closed the application exits.</p>
+<p>Much like the Simple Asynchronous Consumer example the Simple Producer example wraps up the CMS API detials needed to create a producer into a class called <strong>SimpleProducer</strong>.  This class exposes a simillar interface to the consumer example, there is one constructor that allows an instance to be created with configuration options for the broker and destination as well as the number of messages to send to the configured destination.  Once created the client code simply calls the SimpleProducer's <em>run</em> method to publish the specified number of messages.  Once the <em>run</em> method completes the client is free to close the SimpleProducer which cleans up the allocated CMS resources, once closed the application exits.</p>
 
-<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>A Simple Message Producer Example</b></div><div class="codeContent panelContent">
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>A Simple Message Producer Example</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 
 /*
@@ -682,13 +676,13 @@ int main(int argc AMQCPP_UNUSED, char* a
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
+ * (the &quot;License&quot;); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
@@ -803,15 +797,15 @@ public:
             string threadIdStr = Long::toString( Thread::currentThread()-&gt;getId() );
 
             // Create a messages
-            string text = (string)"Hello world! from thread " + threadIdStr;
+            string text = (string)&quot;Hello world! from thread &quot; + threadIdStr;
 
             for( unsigned int ix=0; ix&lt;numMessages; ++ix ){
                 TextMessage* message = session-&gt;createTextMessage( text );
 
-                message-&gt;setIntProperty( "Integer", ix );
+                message-&gt;setIntProperty( &quot;Integer&quot;, ix );
 
                 // Tell the producer to send the message
-                printf( "Sent message #%d from thread %s\n", ix+1, threadIdStr.c_str() );
+                printf( &quot;Sent message #%d from thread %s\n&quot;, ix+1, threadIdStr.c_str() );
                 producer-&gt;send( message );
 
                 delete message;
@@ -846,9 +840,9 @@ int main(int argc AMQCPP_UNUSED, char* a
 
     activemq::library::ActiveMQCPP::initializeLibrary();
 
-    std::cout &lt;&lt; "=====================================================\n";
-    std::cout &lt;&lt; "Starting the example:" &lt;&lt; std::endl;
-    std::cout &lt;&lt; "-----------------------------------------------------\n";
+    std::cout &lt;&lt; &quot;=====================================================\n&quot;;
+    std::cout &lt;&lt; &quot;Starting the example:&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; &quot;-----------------------------------------------------\n&quot;;
 
     // Set the URI to point to the IPAddress of your broker.
     // add any optional params to the url to enable things like
@@ -858,7 +852,7 @@ int main(int argc AMQCPP_UNUSED, char* a
     //  http://activemq.apache.org/cms/
     //
     std::string brokerURI =
-        "failover://(tcp://127.0.0.1:61616)";
+        &quot;failover://(tcp://127.0.0.1:61616)&quot;;
 
     //============================================================
     // Total number of messages for this producer to send.
@@ -868,9 +862,9 @@ int main(int argc AMQCPP_UNUSED, char* a
     //============================================================
     // This is the Destination Name and URI options.  Use this to
     // customize where the Producer produces, to have the producer
-    // use a topic or queue set the 'useTopics' flag.
+    // use a topic or queue set the &#39;useTopics&#39; flag.
     //============================================================
-    std::string destURI = "TEST.FOO";
+    std::string destURI = &quot;TEST.FOO&quot;;
 
     //============================================================
     // set to true to use topics instead of queues
@@ -888,9 +882,9 @@ int main(int argc AMQCPP_UNUSED, char* a
     // Before exiting we ensure that all CMS resources are closed.
     producer.close();
 
-    std::cout &lt;&lt; "-----------------------------------------------------\n";
-    std::cout &lt;&lt; "Finished with the example." &lt;&lt; std::endl;
-    std::cout &lt;&lt; "=====================================================\n";
+    std::cout &lt;&lt; &quot;-----------------------------------------------------\n&quot;;
+    std::cout &lt;&lt; &quot;Finished with the example.&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; &quot;=====================================================\n&quot;;
 
     activemq::library::ActiveMQCPP::shutdownLibrary();
 }
@@ -902,24 +896,24 @@ int main(int argc AMQCPP_UNUSED, char* a
           <div class="navigation">
             <div class="navigation_top">
               <div class="navigation_bottom">
-<h3><a shape="rect" name="Navigation-OverviewIndex"></a><a shape="rect" href="index.html" title="Index">Overview</a></h3>
+<h3 id="Navigation-Overview"><a shape="rect" href="index.html">Overview</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="index.html" title="Index">Index</a></li><li><a shape="rect" href="news.html" title="News">News</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li><li><a shape="rect" href="tutorials.html" title="Tutorials">Tutorials</a></li><li><a shape="rect" href="api.html" title="API">API</a></li><li><a shape="rect" href="faq.html" title="FAQ">FAQ</a></li><li><a shape="rect" href="download.html" title="Download">Download</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="index.html">Index</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="api.html">API</a></li><li><a shape="rect" href="faq.html">FAQ</a></li><li><a shape="rect" href="download.html">Download</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Connectivity"></a><a shape="rect" href="connectivity.html" title="Connectivity">Connectivity</a></h3>
+<h3 id="Navigation-Connectivity"><a shape="rect" href="connectivity.html">Connectivity</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="stomp-support.html" title="Stomp Support">Stomp</a></li><li><a shape="rect" href="openwire-support.html" title="OpenWire Support">OpenWire</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="stomp-support.html">Stomp</a></li><li><a shape="rect" href="openwire-support.html">OpenWire</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-UsingActiveMQCPP"></a><a shape="rect" href="using-activemq-cpp.html" title="Using ActiveMQ-CPP">Using ActiveMQ-CPP</a></h3>
+<h3 id="Navigation-UsingActiveMQ-CPP"><a shape="rect" href="using-activemq-cpp.html">Using ActiveMQ-CPP</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li><li><a shape="rect" href="cms-api-overview.html" title="CMS API Overview">CMS API Overview</a></li><li><a shape="rect" href="example.html" title="Example">Example</a></li><li><a shape="rect" href="configuring.html" title="Configuring">Configuring</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="cms-api-overview.html">CMS API Overview</a></li><li><a shape="rect" href="example.html">Example</a></li><li><a shape="rect" href="configuring.html">Configuring</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Search"></a>Search</h3>
+<h3 id="Navigation-Search">Search</h3>
 
-<p>
+<p></p><p>
 </p><div>
 <form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
 <input type="hidden" name="ie" value="UTF-8">
@@ -930,18 +924,17 @@ int main(int argc AMQCPP_UNUSED, char* a
   <input type="hidden" name="sitesearch" value="activemq.apache.org">
 </form>
 </div>
+<p></p>
 
+<h3 id="Navigation-Community"><a shape="rect" href="community.html">Community</a></h3>
 
-<h3><a shape="rect" name="Navigation-Community"></a><a shape="rect" href="community.html" title="Community">Community</a></h3>
-
-<ul class="alternate" type="square"><li><a shape="rect" href="support.html" title="Support">Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" class="external-link" href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></li><li><a shape="rect" class="external-link" href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="site.html" title="Site">Site</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/team.html">Team</a></li></ul>
-
+<ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" class="external-link" href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></li><li><a shape="rect" class="external-link" href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/team.html">Team</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Developers"></a><a shape="rect" href="developers.html" title="Developers">Developers</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="source.html" title="Source">Source</a></li><li><a shape="rect" href="building.html" title="Building">Building</a></li><li><a shape="rect" href="creating-distributions.html" title="Creating Distributions">Creating Distributions</a></li></ul>
+<h3 id="Navigation-Developers"><a shape="rect" href="developers.html">Developers</a></h3>
 
+<ul class="alternate"><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="creating-distributions.html">Creating Distributions</a></li></ul>
               </div>
             </div>
           </div>

Modified: websites/production/activemq/content/cms/community.html
==============================================================================
--- websites/production/activemq/content/cms/community.html (original)
+++ websites/production/activemq/content/cms/community.html Mon May  5 20:20:46 2014
@@ -58,13 +58,13 @@
             <a shape="rect" style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" href="http://www.apache.org">ASF</a>
 	</div>
         </div>
-
+<p></p>
         <div class="top_red_bar">
           <div id="site-breadcrumbs">
 <a href="index.html">Index</a>&nbsp;&gt;&nbsp;<a href="community.html">Community</a>
           </div>
           <div id="site-quicklinks">
-<p><a shape="rect" href="download.html" title="Download">Download</a> | <a shape="rect" href="api.html" title="API">API</a> | <a shape="rect" href="source.html" title="Source">Source</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Forums</a> | <a shape="rect" href="support.html" title="Support">Support</a></p>
+<p><a shape="rect" href="download.html">Download</a> | <a shape="rect" href="api.html">API</a> | <a shape="rect" href="source.html">Source</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Forums</a> | <a shape="rect" href="support.html">Support</a></p>
           </div>
         </div>
 
@@ -72,30 +72,30 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><ul><li><a shape="rect" href="faq.html" title="FAQ">FAQ</a><ul><li><a shape="rect" href="activemq-cpp-usage-faqs.html" title="ActiveMQ-CPP Usage FAQs">ActiveMQ-CPP Usage FAQs</a><ul><li><a shape="rect" href="how-do-i-use-the-ssl-transport.html" title="How do I use the SSL Transport">How do I use the SSL Transport</a></li></ul></li><li><a shape="rect" href="building-faqs.html" title="Building FAQs">Building FAQs</a><ul><li><a shape="rect" href="general-build-issues.html" title="General Build Issues">General Build Issues</a></li><li><a shape="rect" href="openssl-support.html" title="OpenSSL Support">OpenSSL Support</a><ul><li><a shape="rect" href="enable-openssl-support-with-autotools.html" title="Enable OpenSSL support with autotools">Enable OpenSSL support with autotools</a></li><li><a shape="rect" href="how-do-i-prevent-autoconf-from-enabling-openssl-support.html" title="How do I prevent autoconf from enabling OpenSSL support">How do I prevent 
 autoconf from enabling OpenSSL support</a></li><li><a shape="rect" href="how-to-enable-ssl-support-on-windows.html" title="How to enable SSL support on Windows">How to enable SSL support on Windows</a></li></ul></li><li><a shape="rect" href="solaris-platform.html" title="Solaris Platform">Solaris Platform</a><ul><li><a shape="rect" href="errors-from-libstdla-on-solaris-10-using-the-gnu-compiler.html" title="Errors from libstd++.la on Solaris 10 using the GNU Compiler">Errors from libstd++.la on Solaris 10 using the GNU Compiler</a></li><li><a shape="rect" href="errors-saying-no-rule-to-make-target.html" title="Errors saying &quot;no rule to make target&quot;">Errors saying "no rule to make target"</a></li><li><a shape="rect" href="using-the-solaris-cc-compiler.html" title="Using the Solaris CC compiler">Using the Solaris CC compiler</a></li></ul></li></ul></li><li><a shape="rect" href="discussion-forums.html" title="Discussion Forums">Discussion Forums</a><ul><li><a shape="rect" hre
 f="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li></ul></li><li><a shape="rect" href="general.html" title="General">General</a><ul><li><a shape="rect" href="are-there-more-faq-entries.html" title="Are there more FAQ Entries">Are there more FAQ Entries</a></li><li><a shape="rect" href="what-is-activemq-cpp.html" title="What is ActiveMQ CPP">What is ActiveMQ CPP</a></li></ul></li></ul></li><li><a shape="rect" href="privacy-policy.html" title="Privacy Policy">Privacy Policy</a></li></ul></div>
+<div class="wiki-content maincontent"><ul class="childpages-macro"><li><a shape="rect" href="faq.html">FAQ</a><ul class="childpages-macro"><li><a shape="rect" href="activemq-cpp-usage-faqs.html">ActiveMQ-CPP Usage FAQs</a><ul class="childpages-macro"><li><a shape="rect" href="how-do-i-use-the-ssl-transport.html">How do I use the SSL Transport</a></li></ul></li><li><a shape="rect" href="building-faqs.html">Building FAQs</a><ul class="childpages-macro"><li><a shape="rect" href="general-build-issues.html">General Build Issues</a></li><li><a shape="rect" href="openssl-support.html">OpenSSL Support</a><ul class="childpages-macro"><li><a shape="rect" href="enable-openssl-support-with-autotools.html">Enable OpenSSL support with autotools</a></li><li><a shape="rect" href="how-do-i-prevent-autoconf-from-enabling-openssl-support.html">How do I prevent autoconf from enabling OpenSSL support</a></li><li><a shape="rect" href="how-to-enable-ssl-support-on-windows.html">How to enable SSL support o
 n Windows</a></li></ul></li><li><a shape="rect" href="solaris-platform.html">Solaris Platform</a><ul class="childpages-macro"><li><a shape="rect" href="errors-from-libstdla-on-solaris-10-using-the-gnu-compiler.html">Errors from libstd++.la on Solaris 10 using the GNU Compiler</a></li><li><a shape="rect" href="errors-saying-no-rule-to-make-target.html">Errors saying "no rule to make target"</a></li><li><a shape="rect" href="using-the-solaris-cc-compiler.html">Using the Solaris CC compiler</a></li></ul></li></ul></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a><ul class="childpages-macro"><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li></ul></li><li><a shape="rect" href="general.html">General</a><ul class="childpages-macro"><li><a shape="rect" href="are-there-more-faq-entries.html">Are there more FAQ Entries</a></li><li><a shape="rect" href="what-is-activemq-cpp.html">What is ActiveMQ CPP</a></li></ul></li></ul></li><li><a shape="rect" hr
 ef="privacy-policy.html">Privacy Policy</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">
             <div class="navigation_top">
               <div class="navigation_bottom">
-<h3><a shape="rect" name="Navigation-OverviewIndex"></a><a shape="rect" href="index.html" title="Index">Overview</a></h3>
+<h3 id="Navigation-Overview"><a shape="rect" href="index.html">Overview</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="index.html" title="Index">Index</a></li><li><a shape="rect" href="news.html" title="News">News</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li><li><a shape="rect" href="tutorials.html" title="Tutorials">Tutorials</a></li><li><a shape="rect" href="api.html" title="API">API</a></li><li><a shape="rect" href="faq.html" title="FAQ">FAQ</a></li><li><a shape="rect" href="download.html" title="Download">Download</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="index.html">Index</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="api.html">API</a></li><li><a shape="rect" href="faq.html">FAQ</a></li><li><a shape="rect" href="download.html">Download</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Connectivity"></a><a shape="rect" href="connectivity.html" title="Connectivity">Connectivity</a></h3>
+<h3 id="Navigation-Connectivity"><a shape="rect" href="connectivity.html">Connectivity</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="stomp-support.html" title="Stomp Support">Stomp</a></li><li><a shape="rect" href="openwire-support.html" title="OpenWire Support">OpenWire</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="stomp-support.html">Stomp</a></li><li><a shape="rect" href="openwire-support.html">OpenWire</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-UsingActiveMQCPP"></a><a shape="rect" href="using-activemq-cpp.html" title="Using ActiveMQ-CPP">Using ActiveMQ-CPP</a></h3>
+<h3 id="Navigation-UsingActiveMQ-CPP"><a shape="rect" href="using-activemq-cpp.html">Using ActiveMQ-CPP</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li><li><a shape="rect" href="cms-api-overview.html" title="CMS API Overview">CMS API Overview</a></li><li><a shape="rect" href="example.html" title="Example">Example</a></li><li><a shape="rect" href="configuring.html" title="Configuring">Configuring</a></li></ul>
+<ul class="alternate"><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="cms-api-overview.html">CMS API Overview</a></li><li><a shape="rect" href="example.html">Example</a></li><li><a shape="rect" href="configuring.html">Configuring</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Search"></a>Search</h3>
+<h3 id="Navigation-Search">Search</h3>
 
-<p>
+<p></p><p>
 </p><div>
 <form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
 <input type="hidden" name="ie" value="UTF-8">
@@ -106,18 +106,17 @@
   <input type="hidden" name="sitesearch" value="activemq.apache.org">
 </form>
 </div>
+<p></p>
 
+<h3 id="Navigation-Community"><a shape="rect" href="community.html">Community</a></h3>
 
-<h3><a shape="rect" name="Navigation-Community"></a><a shape="rect" href="community.html" title="Community">Community</a></h3>
-
-<ul class="alternate" type="square"><li><a shape="rect" href="support.html" title="Support">Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" class="external-link" href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></li><li><a shape="rect" class="external-link" href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="site.html" title="Site">Site</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/team.html">Team</a></li></ul>
-
+<ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" class="external-link" href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></li><li><a shape="rect" class="external-link" href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/team.html">Team</a></li></ul>
 
 
-<h3><a shape="rect" name="Navigation-Developers"></a><a shape="rect" href="developers.html" title="Developers">Developers</a></h3>
 
-<ul class="alternate" type="square"><li><a shape="rect" href="source.html" title="Source">Source</a></li><li><a shape="rect" href="building.html" title="Building">Building</a></li><li><a shape="rect" href="creating-distributions.html" title="Creating Distributions">Creating Distributions</a></li></ul>
+<h3 id="Navigation-Developers"><a shape="rect" href="developers.html">Developers</a></h3>
 
+<ul class="alternate"><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="creating-distributions.html">Creating Distributions</a></li></ul>
               </div>
             </div>
           </div>



Mime
View raw message