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/09/09 15:19:18 UTC

svn commit: r831476 - in /websites/production/camel/content: book-in-one-page.html book-pattern-appendix.html cache/main.pageCache camel-2110-release.html dead-letter-channel.html error-handler.html

Author: buildbot
Date: Sun Sep  9 13:19:18 2012
New Revision: 831476

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/book-pattern-appendix.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/camel-2110-release.html
    websites/production/camel/content/dead-letter-channel.html
    websites/production/camel/content/error-handler.html

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Sun Sep  9 13:19:18 2012
@@ -14651,7 +14651,7 @@ from(<span class="code-quote">"activemq:
 
 <p>The <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/RedeliveryPolicy.html">RedeliveryPolicy</a> defines how the message is to be redelivered. You can customize things like</p>
 
-<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li></ul>
+<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li><li><b>Camel 2.11:</b> whether to allow redelivery during stopping/shutdown</li></ul>
 
 
 <p>Once all attempts at redelivering the message fails then the message is forwarded to the dead letter queue.</p>
@@ -14822,6 +14822,47 @@ from(<span class="code-quote">"activemq:
 
 <p>Now suppose the route above and a failure happens in the <tt>foo</tt> bean. Then the <tt>Exchange.TO_ENDPOINT</tt> and <tt>Exchange.FAILURE_ENDPOINT</tt> will still contain the value of <tt><a shape="rect" class="external-link" href="http://someserver/somepath" rel="nofollow">http://someserver/somepath</a></tt>.</p>
 
+<h3><a shape="rect" name="BookInOnePage-Controlifredeliveryisallowedduringstopping%2Fshutdown"></a>Control if redelivery is allowed during stopping/shutdown</h3>
+<p><b>Available as of Camel 2.11</b></p>
+
+<p>In Camel 2.10 or earlier, Camel will perform redelivery while stopping a route, or shutting down Camel. This has improved a bit in Camel 2.10 onwards, as Camel will not perform redelivery attempts when shutting down aggressively (eg during <a shape="rect" href="graceful-shutdown.html" title="Graceful Shutdown">Graceful Shutdown</a> and timeout hit). From Camel 2.11 onwards there is a new option <tt>redeliverWhileStopping</tt> which you can use to control if redelivery is allowed or not. </p>
+
+<p>The default value is <tt>true</tt> to be backwards compatible as before. For example the following sample shows how to do this with Java DSL and XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">
+<span class="code-comment">// <span class="code-keyword">this</span> error handler will <span class="code-keyword">try</span> up till 20 redelivery attempts with 1 second between.
+</span><span class="code-comment">// however <span class="code-keyword">if</span> we are stopping then <span class="code-keyword">do</span> not allow any redeliver attempts.
+</span>errorHandler(defaultErrorHandler()
+        .redeliverWhileStopping(<span class="code-keyword">false</span>)
+        .maximumRedeliveries(20).redeliveryDelay(1000).retryAttemptedLogLevel(LoggingLevel.INFO));
+
+from(<span class="code-quote">"seda:foo"</span>).routeId(<span class="code-quote">"foo"</span>)
+    .to(<span class="code-quote">"mock:foo"</span>)
+    .throwException(<span class="code-keyword">new</span> IllegalArgumentException(<span class="code-quote">"Forced"</span>));
+</pre>
+</div></div>
+
+<p>And the sample sample with XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag"><span class="code-comment">&lt;!-- notice we use the errorHandlerRef attribute to refer to the error handler to use as default --&gt;</span></span>
+   <span class="code-tag">&lt;camelContext errorHandlerRef=<span class="code-quote">"myErrorHandler"</span> xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>&gt;</span>
+
+	&lt;!-- configure error handler, to redeliver up till 10 times, with 1 sec delay
+	     and if we are stopping then do not allow redeliveries, to stop faster --&gt;
+	<span class="code-tag">&lt;errorHandler id=<span class="code-quote">"myErrorHandler"</span> type=<span class="code-quote">"DefaultErrorHandler"</span>&gt;</span>
+		<span class="code-tag">&lt;redeliveryPolicy maximumRedeliveries=<span class="code-quote">"20"</span> redeliveryDelay=<span class="code-quote">"1000"</span> redeliverWhileStopping=<span class="code-quote">"false"</span> retryAttemptedLogLevel=<span class="code-quote">"INFO"</span>/&gt;</span>
+	<span class="code-tag">&lt;/errorHandler&gt;</span>
+
+       <span class="code-tag">&lt;route id=<span class="code-quote">"foo"</span>&gt;</span>
+           <span class="code-tag">&lt;from uri=<span class="code-quote">"seda:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;to uri=<span class="code-quote">"mock:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;throwException ref=<span class="code-quote">"forced"</span>/&gt;</span>
+       <span class="code-tag">&lt;/route&gt;</span>
+
+   <span class="code-tag">&lt;/camelContext&gt;</span>
+</pre>
+</div></div>
+
 
 <h3><a shape="rect" name="BookInOnePage-Samples"></a>Samples</h3>
 <p>The following example shows how to configure the Dead Letter Channel configuration using the <a shape="rect" href="dsl.html" title="DSL">DSL</a></p>

Modified: websites/production/camel/content/book-pattern-appendix.html
==============================================================================
--- websites/production/camel/content/book-pattern-appendix.html (original)
+++ websites/production/camel/content/book-pattern-appendix.html Sun Sep  9 13:19:18 2012
@@ -458,7 +458,7 @@ from(<span class="code-quote">"activemq:
 
 <p>The <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/RedeliveryPolicy.html">RedeliveryPolicy</a> defines how the message is to be redelivered. You can customize things like</p>
 
-<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li></ul>
+<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li><li><b>Camel 2.11:</b> whether to allow redelivery during stopping/shutdown</li></ul>
 
 
 <p>Once all attempts at redelivering the message fails then the message is forwarded to the dead letter queue.</p>
@@ -629,6 +629,47 @@ from(<span class="code-quote">"activemq:
 
 <p>Now suppose the route above and a failure happens in the <tt>foo</tt> bean. Then the <tt>Exchange.TO_ENDPOINT</tt> and <tt>Exchange.FAILURE_ENDPOINT</tt> will still contain the value of <tt><a shape="rect" class="external-link" href="http://someserver/somepath" rel="nofollow">http://someserver/somepath</a></tt>.</p>
 
+<h3><a shape="rect" name="BookPatternAppendix-Controlifredeliveryisallowedduringstopping%2Fshutdown"></a>Control if redelivery is allowed during stopping/shutdown</h3>
+<p><b>Available as of Camel 2.11</b></p>
+
+<p>In Camel 2.10 or earlier, Camel will perform redelivery while stopping a route, or shutting down Camel. This has improved a bit in Camel 2.10 onwards, as Camel will not perform redelivery attempts when shutting down aggressively (eg during <a shape="rect" href="graceful-shutdown.html" title="Graceful Shutdown">Graceful Shutdown</a> and timeout hit). From Camel 2.11 onwards there is a new option <tt>redeliverWhileStopping</tt> which you can use to control if redelivery is allowed or not. </p>
+
+<p>The default value is <tt>true</tt> to be backwards compatible as before. For example the following sample shows how to do this with Java DSL and XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">
+<span class="code-comment">// <span class="code-keyword">this</span> error handler will <span class="code-keyword">try</span> up till 20 redelivery attempts with 1 second between.
+</span><span class="code-comment">// however <span class="code-keyword">if</span> we are stopping then <span class="code-keyword">do</span> not allow any redeliver attempts.
+</span>errorHandler(defaultErrorHandler()
+        .redeliverWhileStopping(<span class="code-keyword">false</span>)
+        .maximumRedeliveries(20).redeliveryDelay(1000).retryAttemptedLogLevel(LoggingLevel.INFO));
+
+from(<span class="code-quote">"seda:foo"</span>).routeId(<span class="code-quote">"foo"</span>)
+    .to(<span class="code-quote">"mock:foo"</span>)
+    .throwException(<span class="code-keyword">new</span> IllegalArgumentException(<span class="code-quote">"Forced"</span>));
+</pre>
+</div></div>
+
+<p>And the sample sample with XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag"><span class="code-comment">&lt;!-- notice we use the errorHandlerRef attribute to refer to the error handler to use as default --&gt;</span></span>
+   <span class="code-tag">&lt;camelContext errorHandlerRef=<span class="code-quote">"myErrorHandler"</span> xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>&gt;</span>
+
+	&lt;!-- configure error handler, to redeliver up till 10 times, with 1 sec delay
+	     and if we are stopping then do not allow redeliveries, to stop faster --&gt;
+	<span class="code-tag">&lt;errorHandler id=<span class="code-quote">"myErrorHandler"</span> type=<span class="code-quote">"DefaultErrorHandler"</span>&gt;</span>
+		<span class="code-tag">&lt;redeliveryPolicy maximumRedeliveries=<span class="code-quote">"20"</span> redeliveryDelay=<span class="code-quote">"1000"</span> redeliverWhileStopping=<span class="code-quote">"false"</span> retryAttemptedLogLevel=<span class="code-quote">"INFO"</span>/&gt;</span>
+	<span class="code-tag">&lt;/errorHandler&gt;</span>
+
+       <span class="code-tag">&lt;route id=<span class="code-quote">"foo"</span>&gt;</span>
+           <span class="code-tag">&lt;from uri=<span class="code-quote">"seda:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;to uri=<span class="code-quote">"mock:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;throwException ref=<span class="code-quote">"forced"</span>/&gt;</span>
+       <span class="code-tag">&lt;/route&gt;</span>
+
+   <span class="code-tag">&lt;/camelContext&gt;</span>
+</pre>
+</div></div>
+
 
 <h3><a shape="rect" name="BookPatternAppendix-Samples"></a>Samples</h3>
 <p>The following example shows how to configure the Dead Letter Channel configuration using the <a shape="rect" href="dsl.html" title="DSL">DSL</a></p>

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

Modified: websites/production/camel/content/camel-2110-release.html
==============================================================================
--- websites/production/camel/content/camel-2110-release.html (original)
+++ websites/production/camel/content/camel-2110-release.html Sun Sep  9 13:19:18 2012
@@ -84,7 +84,7 @@
 
 <p>Welcome to the 2.11.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as: </p>
 
-<ul><li>Added support for SOAP 1.2 in <a shape="rect" href="soap.html" title="SOAP">SOAP</a> data format.</li><li><a shape="rect" href="cache.html" title="Cache">Cache</a> operation for add/update now supports expiry headers to control time to live/idle/eternal.</li><li>Added <tt>allowNullBody</tt> option to <a shape="rect" href="jms.html" title="JMS">JMS</a> to configure whether sending messages with no body is allowed.</li><li>Added <tt>connectOnStartup</tt> option to <a shape="rect" href="hdfs.html" title="HDFS">HDFS</a> to allow to connect on demand, to avoid having Hadoop block for long time connecting to the HDFS cluster, as it has a hardcoded 15 minute retry mechanism.</li><li>Added support for daily and weekly trends to <a shape="rect" href="twitter.html" title="Twitter">Twitter</a> component.</li><li>The <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> now generates projects without any license headers.</li
 ><li>Added 'rejectOld' option to the <a shape="rect" href="resequencer.html" title="Resequencer">Resequencer</a> to prevent out of order messages from being delivered after capacity/timeout events occur</li><li>Further optimized <a shape="rect" href="xpath.html" title="XPath">XPath</a> under concurrent load, and as well ensured resources are cleaned up eagerly</li><li>Added options <tt>allowNullBody</tt> and <tt>readLockMinLength</tt> to the <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components.</li><li>Made <tt>changed</tt> read lock strategy on <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> go faster (eg when the FTP server has a lot of files in the directory) if you enable the <tt>fastExistsCheck=true</tt> option as well. Notice that some FTP server may not support this.</li><li><a shape="rect" href="hl7.html" title="HL7">HL7</a> moves to HAPI 2.0 and supports using a dedicated Parser instance 
 in the <a shape="rect" href="hl7.html" title="HL7">HL7</a> MLLP codec and DataFormat. Added "Terser" language and expression to be able to extract fields from a parsed message. <a shape="rect" href="hl7.html" title="HL7">HL7</a> now uses Apache Mina 2.x.</li><li>Add an option <tt>HttpMethodRestrict</tt> to restrict HTTP method in <a shape="rect" href="jetty.html" title="Jetty">Jetty</a> and <a shape="rect" href="servlet.html" title="SERVLET">SERVLET</a></li><li>Add support for selection of <a shape="rect" href="direct-vm.html" title="Direct-VM">Direct-VM</a> consumers by using ant-like path expression.</li><li>The <a shape="rect" href="pojo-producing.html" title="POJO Producing">POJO Producing</a>, and <a shape="rect" href="pojo-consuming.html" title="POJO Consuming">POJO Consuming</a> with @Consume, @Produce, @EndpointInject now supports a new {{property} attribute to get the endpoint configuration from a bean property (eg using a getter method); this allows you to configur
 e this on the bean using conventional bean configuration.</li><li>Testing with <tt>camel-test-blueprint</tt> on Windows no longer tries to cleanup after testing taking up 5 seconds and logging WARNs.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a>, and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components now support <tt>fileExist=Move</tt> option to move any existing files before writing a file.</li><li>Added option <tt>loadStatisticsEnabled</tt> on <a shape="rect" href="camel-jmx.html" title="Camel JMX">Camel JMX</a> to allow to disable load statistics if not needed (avoids a background thread being in use, to calculate the load stats).</li><li>Enabled "lazy connections" for <a shape="rect" href="xmpp.html" title="XMPP">XMPP</a> providers via the <tt>testConnectionOnStartup</tt> option</li><li>Added a connection monitor to detect and fix dropped <a shape="rect" href="xmpp.html" title="XMPP">XMPP</a> consumer connections at configurable <tt>c
 onnectionPollDelay</tt> intervals</li><li>Added an <tt>org.apache.camel.builder.ExchangeBuilder</tt> to build the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> using a builder pattern.</li><li>The <a shape="rect" href="camel-run-maven-goal.html" title="Camel Run Maven Goal">Camel Run Maven Goal</a> can now run <a shape="rect" href="cdi.html" title="CDI">CDI</a> applications.</li><li>The Camel <a shape="rect" href="cdi.html" title="CDI">CDI</a> component has improved a lot.</li></ul>
+<ul><li>Added support for SOAP 1.2 in <a shape="rect" href="soap.html" title="SOAP">SOAP</a> data format.</li><li><a shape="rect" href="cache.html" title="Cache">Cache</a> operation for add/update now supports expiry headers to control time to live/idle/eternal.</li><li>Added <tt>allowNullBody</tt> option to <a shape="rect" href="jms.html" title="JMS">JMS</a> to configure whether sending messages with no body is allowed.</li><li>Added <tt>connectOnStartup</tt> option to <a shape="rect" href="hdfs.html" title="HDFS">HDFS</a> to allow to connect on demand, to avoid having Hadoop block for long time connecting to the HDFS cluster, as it has a hardcoded 15 minute retry mechanism.</li><li>Added support for daily and weekly trends to <a shape="rect" href="twitter.html" title="Twitter">Twitter</a> component.</li><li>The <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> now generates projects without any license headers.</li
 ><li>Added 'rejectOld' option to the <a shape="rect" href="resequencer.html" title="Resequencer">Resequencer</a> to prevent out of order messages from being delivered after capacity/timeout events occur</li><li>Further optimized <a shape="rect" href="xpath.html" title="XPath">XPath</a> under concurrent load, and as well ensured resources are cleaned up eagerly</li><li>Added options <tt>allowNullBody</tt> and <tt>readLockMinLength</tt> to the <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components.</li><li>Made <tt>changed</tt> read lock strategy on <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> go faster (eg when the FTP server has a lot of files in the directory) if you enable the <tt>fastExistsCheck=true</tt> option as well. Notice that some FTP server may not support this.</li><li><a shape="rect" href="hl7.html" title="HL7">HL7</a> moves to HAPI 2.0 and supports using a dedicated Parser instance 
 in the <a shape="rect" href="hl7.html" title="HL7">HL7</a> MLLP codec and DataFormat. Added "Terser" language and expression to be able to extract fields from a parsed message. <a shape="rect" href="hl7.html" title="HL7">HL7</a> now uses Apache Mina 2.x.</li><li>Add an option <tt>HttpMethodRestrict</tt> to restrict HTTP method in <a shape="rect" href="jetty.html" title="Jetty">Jetty</a> and <a shape="rect" href="servlet.html" title="SERVLET">SERVLET</a></li><li>Add support for selection of <a shape="rect" href="direct-vm.html" title="Direct-VM">Direct-VM</a> consumers by using ant-like path expression.</li><li>The <a shape="rect" href="pojo-producing.html" title="POJO Producing">POJO Producing</a>, and <a shape="rect" href="pojo-consuming.html" title="POJO Consuming">POJO Consuming</a> with @Consume, @Produce, @EndpointInject now supports a new {{property} attribute to get the endpoint configuration from a bean property (eg using a getter method); this allows you to configur
 e this on the bean using conventional bean configuration.</li><li>Testing with <tt>camel-test-blueprint</tt> on Windows no longer tries to cleanup after testing taking up 5 seconds and logging WARNs.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a>, and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components now support <tt>fileExist=Move</tt> option to move any existing files before writing a file.</li><li>Added option <tt>loadStatisticsEnabled</tt> on <a shape="rect" href="camel-jmx.html" title="Camel JMX">Camel JMX</a> to allow to disable load statistics if not needed (avoids a background thread being in use, to calculate the load stats).</li><li>Enabled "lazy connections" for <a shape="rect" href="xmpp.html" title="XMPP">XMPP</a> providers via the <tt>testConnectionOnStartup</tt> option</li><li>Added a connection monitor to detect and fix dropped <a shape="rect" href="xmpp.html" title="XMPP">XMPP</a> consumer connections at configurable <tt>c
 onnectionPollDelay</tt> intervals</li><li>Added an <tt>org.apache.camel.builder.ExchangeBuilder</tt> to build the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> using a builder pattern.</li><li>The <a shape="rect" href="camel-run-maven-goal.html" title="Camel Run Maven Goal">Camel Run Maven Goal</a> can now run <a shape="rect" href="cdi.html" title="CDI">CDI</a> applications.</li><li>The Camel <a shape="rect" href="cdi.html" title="CDI">CDI</a> component has improved a lot.</li><li>Added option <tt>redeliverWhileStopping</tt> to <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">error handlers</a> to control if redelivery is allowed during stopping/shutting down Camel or the route(s). Turning this option <tt>false</tt> allows to stop quicker by rejecting redelivery attempts.</li></ul>
 
 
 <h3><a shape="rect" name="Camel2.11.0Release-Fixedissues"></a>Fixed issues</h3>

Modified: websites/production/camel/content/dead-letter-channel.html
==============================================================================
--- websites/production/camel/content/dead-letter-channel.html (original)
+++ websites/production/camel/content/dead-letter-channel.html Sun Sep  9 13:19:18 2012
@@ -93,7 +93,7 @@
 
 <p>The <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/RedeliveryPolicy.html">RedeliveryPolicy</a> defines how the message is to be redelivered. You can customize things like</p>
 
-<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li></ul>
+<ul><li>how many times a message is attempted to be redelivered before it is considered a failure and sent to the dead letter channel</li><li>the initial redelivery timeout</li><li>whether or not exponential backoff is used (i.e. the time between retries increases using a backoff multiplier)</li><li>whether to use collision avoidance to add some randomness to the timings</li><li>delay pattern (see below for details)</li><li><b>Camel 2.11:</b> whether to allow redelivery during stopping/shutdown</li></ul>
 
 
 <p>Once all attempts at redelivering the message fails then the message is forwarded to the dead letter queue.</p>
@@ -264,6 +264,47 @@ from(<span class="code-quote">"activemq:
 
 <p>Now suppose the route above and a failure happens in the <tt>foo</tt> bean. Then the <tt>Exchange.TO_ENDPOINT</tt> and <tt>Exchange.FAILURE_ENDPOINT</tt> will still contain the value of <tt><a shape="rect" class="external-link" href="http://someserver/somepath" rel="nofollow">http://someserver/somepath</a></tt>.</p>
 
+<h3><a shape="rect" name="DeadLetterChannel-Controlifredeliveryisallowedduringstopping%2Fshutdown"></a>Control if redelivery is allowed during stopping/shutdown</h3>
+<p><b>Available as of Camel 2.11</b></p>
+
+<p>In Camel 2.10 or earlier, Camel will perform redelivery while stopping a route, or shutting down Camel. This has improved a bit in Camel 2.10 onwards, as Camel will not perform redelivery attempts when shutting down aggressively (eg during <a shape="rect" href="graceful-shutdown.html" title="Graceful Shutdown">Graceful Shutdown</a> and timeout hit). From Camel 2.11 onwards there is a new option <tt>redeliverWhileStopping</tt> which you can use to control if redelivery is allowed or not. </p>
+
+<p>The default value is <tt>true</tt> to be backwards compatible as before. For example the following sample shows how to do this with Java DSL and XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">
+<span class="code-comment">// <span class="code-keyword">this</span> error handler will <span class="code-keyword">try</span> up till 20 redelivery attempts with 1 second between.
+</span><span class="code-comment">// however <span class="code-keyword">if</span> we are stopping then <span class="code-keyword">do</span> not allow any redeliver attempts.
+</span>errorHandler(defaultErrorHandler()
+        .redeliverWhileStopping(<span class="code-keyword">false</span>)
+        .maximumRedeliveries(20).redeliveryDelay(1000).retryAttemptedLogLevel(LoggingLevel.INFO));
+
+from(<span class="code-quote">"seda:foo"</span>).routeId(<span class="code-quote">"foo"</span>)
+    .to(<span class="code-quote">"mock:foo"</span>)
+    .throwException(<span class="code-keyword">new</span> IllegalArgumentException(<span class="code-quote">"Forced"</span>));
+</pre>
+</div></div>
+
+<p>And the sample sample with XML DSL</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag"><span class="code-comment">&lt;!-- notice we use the errorHandlerRef attribute to refer to the error handler to use as default --&gt;</span></span>
+   <span class="code-tag">&lt;camelContext errorHandlerRef=<span class="code-quote">"myErrorHandler"</span> xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>&gt;</span>
+
+	&lt;!-- configure error handler, to redeliver up till 10 times, with 1 sec delay
+	     and if we are stopping then do not allow redeliveries, to stop faster --&gt;
+	<span class="code-tag">&lt;errorHandler id=<span class="code-quote">"myErrorHandler"</span> type=<span class="code-quote">"DefaultErrorHandler"</span>&gt;</span>
+		<span class="code-tag">&lt;redeliveryPolicy maximumRedeliveries=<span class="code-quote">"20"</span> redeliveryDelay=<span class="code-quote">"1000"</span> redeliverWhileStopping=<span class="code-quote">"false"</span> retryAttemptedLogLevel=<span class="code-quote">"INFO"</span>/&gt;</span>
+	<span class="code-tag">&lt;/errorHandler&gt;</span>
+
+       <span class="code-tag">&lt;route id=<span class="code-quote">"foo"</span>&gt;</span>
+           <span class="code-tag">&lt;from uri=<span class="code-quote">"seda:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;to uri=<span class="code-quote">"mock:foo"</span>/&gt;</span>
+		<span class="code-tag">&lt;throwException ref=<span class="code-quote">"forced"</span>/&gt;</span>
+       <span class="code-tag">&lt;/route&gt;</span>
+
+   <span class="code-tag">&lt;/camelContext&gt;</span>
+</pre>
+</div></div>
+
 
 <h3><a shape="rect" name="DeadLetterChannel-Samples"></a>Samples</h3>
 <p>The following example shows how to configure the Dead Letter Channel configuration using the <a shape="rect" href="dsl.html" title="DSL">DSL</a></p>

Modified: websites/production/camel/content/error-handler.html
==============================================================================
--- websites/production/camel/content/error-handler.html (original)
+++ websites/production/camel/content/error-handler.html Sun Sep  9 13:19:18 2012
@@ -225,7 +225,7 @@ errorHandler(noErrorHandler());
 
 <p>Here is a breakdown of which features is supported by the <a shape="rect" href="error-handler.html" title="Error Handler">Error Handler</a>(s):</p>
 <div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Feature </th><th colspan="1" rowspan="1" class="confluenceTh"> Supported by the following <a shape="rect" href="error-handler.html" title="Error Handler">Error Handler</a> </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> all scopes </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onException </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.htm
 l" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onWhen </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> continued </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.
 html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> handled </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Custom ExceptionPolicy </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rows
 pan="1" class="confluenceTd"> useOriginalBody </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> retryWhile </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onRedelivery </td><td colspan="1" rowspan="1" class="confluenceTd"
 > <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> RedeliveryPolicy </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> asyncDelayedRedelivery </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">Defau
 ltErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dead letter queue </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Feature </th><th colspan="1" rowspan="1" class="confluenceTh"> Supported by the following <a shape="rect" href="error-handler.html" title="Error Handler">Error Handler</a> </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> all scopes </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onException </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.htm
 l" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onWhen </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> continued </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.
 html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> handled </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Custom ExceptionPolicy </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rows
 pan="1" class="confluenceTd"> useOriginalBody </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> retryWhile </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> onRedelivery </td><td colspan="1" rowspan="1" class="confluenceTd"
 > <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> RedeliveryPolicy </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> asyncDelayedRedelivery </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">Defau
 ltErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> redeliverWhileStopping </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="defaulterrorhandler.html" title="DefaultErrorHandler">DefaultErrorHandler</a>, <a shape="rect" href="transactionerrorhandler.html" title="TransactionErrorHandler">TransactionErrorHandler</a>, <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dead letter queue </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> </td></tr></tbody></table>
 </div>