You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2012/08/06 07:18:34 UTC

svn commit: r828111 - in /websites/production/camel/content: cache/main.pageCache sjms.html

Author: buildbot
Date: Mon Aug  6 05:18:34 2012
New Revision: 828111

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/sjms.html

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

Modified: websites/production/camel/content/sjms.html
==============================================================================
--- websites/production/camel/content/sjms.html (original)
+++ websites/production/camel/content/sjms.html Mon Aug  6 05:18:34 2012
@@ -165,10 +165,21 @@ component.setMaxConnections(1);
 <p>The SjmsProducer Endpoint supports the following properties:</p>
 
 <div class="confluenceTableSmall"><div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>acknowledgementMode</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>AUTO_ACKNOWLEDGE</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The JMS acknowledgement name, which is one of: <tt>TRANSACTED</tt>, <tt>CLIENT_ACKNOWLEDGE</tt>, <tt>AUTO_ACKNOWLEDGE</tt>, <tt>DUPS_OK_ACKNOWLEDGE</tt> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>consumerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageListener instances that will be used with the InOut endpoint. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>exc
 hangePattern</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>InOnly</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the Producers message exchange pattern. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>namedReplyTo</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Specifies a named reply to destination for InOut endpoint. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>producerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageProducer instances. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>responseTimeOut</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>5000</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Specifies the amount of time an InOutProducer will wait f
 or its response. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>synchronous</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets whether the Endpoint will use synchronous or asynchronous processing. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>ttl</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>-1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Disabled by default.  Sets the Message time to live header. </td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>acknowledgementMode</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>AUTO_ACKNOWLEDGE</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The JMS acknowledgement name, which is one of: <tt>TRANSACTED</tt>, <tt>CLIENT_ACKNOWLEDGE</tt>, <tt>AUTO_ACKNOWLEDGE</tt>, <tt>DUPS_OK_ACKNOWLEDGE</tt> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>consumerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> <b>InOut only.</b> Defines the number of MessageListener instances that for response consumers. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <t
 t>exchangePattern</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>InOnly</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the Producers message exchange pattern. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>namedReplyTo</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> <b>InOut only.</b> Specifies a named reply to destination for responses. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>persistent</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Whether a message should be delivered with persistence enabled. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>producerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of Messag
 eProducer instances. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>responseTimeOut</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>5000</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> <b>InOut only.</b> Specifies the amount of time an InOut Producer will wait for its response. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>synchronous</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets whether the Endpoint will use synchronous or asynchronous processing. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>transacted</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>false</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> If the endpoint should use a JMS Session transaction. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>ttl</tt> </td><td colspan="1" rowspan="1" c
 lass="confluenceTd"> <tt>-1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Disabled by default.  Sets the Message time to live header. </td></tr></tbody></table>
 </div>
 </div>
 
+<h3><a shape="rect" name="SJMS-Consumers"></a>Consumers</h3>
+
+<p>The SjmsConsumer Endpoint supports the following properties:</p>
+
+<div class="confluenceTableSmall"><div class="table-wrap">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>acknowledgementMode</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>AUTO_ACKNOWLEDGE</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The JMS acknowledgement name, which is one of: <tt>TRANSACTED</tt>, <tt>CLIENT_ACKNOWLEDGE</tt>, <tt>AUTO_ACKNOWLEDGE</tt>, <tt>DUPS_OK_ACKNOWLEDGE</tt> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>consumerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageListener instances. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>durableSubscriptionId</tt> </td><td colspan="
 1" rowspan="1" class="confluenceTd"> <tt>null</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> Required for a durable subscriptions. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>exchangePattern</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>InOnly</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the Consumers message exchange pattern. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>messageSelector</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the message selector. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>synchronous</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets whether the Endpoint will use synchronous or asynchronous processing. </td></tr><tr><td colspan="1" rowspan="1" class="confluenc
 eTd"> <tt>transacted</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>false</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> If the endpoint should use a JMS Session transaction. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>ttl</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>-1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Disabled by default.  Sets the Message time to live header. </td></tr></tbody></table>
+</div>
+</div>
+
+<h3><a shape="rect" name="SJMS-Examples"></a>Examples</h3>
+
 <h4><a shape="rect" name="SJMS-InOnlyProducer%28Default%29"></a>InOnly Producer - (Default)</h4>
 
 <p>The InOnly Producer is the default behavior of the SJMS Producer Endpoint.</p>
@@ -182,7 +193,7 @@ from(<span class="code-quote">"direct:st
 
 <h4><a shape="rect" name="SJMS-InOutProducer"></a>InOut Producer</h4>
 
-<p>To enable InOut behavior with the </p>
+<p>To enable InOut behavior append the <tt>exchangePattern</tt> attribute to the URI.  By default it will use a dedicated TemporaryQueue for each consumer.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">
@@ -191,16 +202,44 @@ from(<span class="code-quote">"direct:st
 </pre>
 </div></div>
 
-<h4><a shape="rect" name="SJMS-SJMSConsumer"></a>SJMS Consumer</h4>
+<p>You can specify a <tt>namedReplyTo</tt> though which can provide a better monitor point.</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">
+from(<span class="code-quote">"direct:start"</span>)
+    .to(<span class="code-quote">"sjms:queue:bar?exchangePattern=InOut&amp;namedReplyTo=my.reply.to.queue"</span>);
+</pre>
+</div></div>
+
+<h3><a shape="rect" name="SJMS-AdditionalNotes"></a>Additional Notes</h3>
+
+<h4><a shape="rect" name="SJMS-DoesSpringlessMeanICan%27tUseSpring%3F"></a>Does Springless Mean I Can't Use Spring?</h4>
+
+<p>Not at all.  Below is an example of the SJMS component using the Spring DSL:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">
+&lt;route
+    id=<span class="code-quote">"inout.named.reply.to.producer.route"</span>&gt;
+    &lt;from
+        uri=<span class="code-quote">"direct:invoke.named.reply.to.queue"</span> /&gt;
+    &lt;to
+        uri=<span class="code-quote">"sjms:queue:named.reply.to.queue?namedReplyTo=my.response.queue&amp;amp;exchangePattern=InOut"</span> /&gt;
+&lt;/route&gt;
 </pre>
 </div></div>
 
-<h4><a shape="rect" name="SJMS-Transactions"></a>Transactions <a shape="rect" name="SJMS-transactionCacheLevels"></a></h4>
+<p>Springless refers to moving away from the dependency on the Spring JMS API.  A new JMS client API is being developed from the ground up to power SJMS.</p>
+
+<h4><a shape="rect" name="SJMS-Clustering"></a>Clustering</h4>
+
+<p>When using InOut with SJMS in a clustered environment you must either use TemporaryQueue destinations or use a unique named reply to destination per InOut producer endpoint.  Message correlation is handled by the endpoint, not with message selectors at the broker.  The InOut Producer Endpoint uses Java Concurrency Exchangers cached by the Message JMSCorrelationID.  This provides a nice performance increase while reducing the overhead on the broker since all the messages are consumed from the destination in the order they are produced by the interested consumer.</p>
+
+<p>Currently the only correlation strategy is to use the JMSCorrelationId.  The InOut Consumer uses this strategy as well ensuring that all responses messages to the included JMSReplyTo destination also have the JMSCorrelationId copied from the request as well.</p>
+
+<h3><a shape="rect" name="SJMS-TransactionSupport"></a>Transaction Support <a shape="rect" name="SJMS-transactionCacheLevels"></a></h3>
 
-<p>There is currently no support the Camel Transaction Processor nor does it support the Camel Transaction API.</p></div>
+<p>There is currently no support the Camel Transaction Processor nor does it support the Java Transaction API (JTA).  Only internal JMS Session Transactions are supported at this time.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">