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/05/08 10:22:51 UTC

svn commit: r816481 - in /websites/production/camel/content: cache/main.pageCache oncompletion.html

Author: buildbot
Date: Tue May  8 08:22:51 2012
New Revision: 816481

Log:
Production update by buildbot for camel

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

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

Modified: websites/production/camel/content/oncompletion.html
==============================================================================
--- websites/production/camel/content/oncompletion.html (original)
+++ websites/production/camel/content/oncompletion.html Tue May  8 08:22:51 2012
@@ -87,9 +87,14 @@
 <ul class="alternate" type="square"><li>scope: global and/or per route (route scope override all global scope)</li><li>multiple global scope</li><li>triggered either always, only if completed with success, or only if failed</li><li><tt>onWhen</tt> predicate to only trigger in certain situations</li></ul>
 
 
+<div class="panelMacro"><table class="infoMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1"><b>On completion runs in separate thread</b><br clear="none">The <b>onCompletion</b> runs in a separate thread in parallel with the original route. It is therefore not intended to influence the outcome of the original route. The idea for on completion is to spin off a new thread to eg send logs to a central log database, send an email, send alterts to a monitoring system, store a copy of the result message etc.<br clear="none">
+Therefore if you want to do some work that influence the original route, then do <b>not</b> use <b>onCompletion</b> for that. Notice: if you use the <tt>UnitOfWork</tt> API as mentioned in the top of this page, then you can register a <tt>Synchronization</tt> callback on the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> which is executed in the original route. That way allows you to do some custom code when the route is completed; this is how custom components can enlist on completion services which they need, eg the <a shape="rect" href="file2.html" title="File2">File</a> component does that for work that moves/deletes the original file etc.</td></tr></table></div>
+
 <h3><a shape="rect" name="OnCompletion-onCompletionwithroutescope"></a>onCompletion with route scope</h3>
 <p>The <b>onCompletion</b> DSL allows you to add custom routes/processors when the original <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> is complete. Camel spin off a copy of the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> and routes it in a separate thread, kinda like a <a shape="rect" href="wire-tap.html" title="Wire Tap">Wire Tap</a>. This allows the original thread to continue while the <b>onCompletion</b> route is running concurrently. We decided for this model as we did not want the <b>onCompletion</b> route to interfere with the original route.</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>)
     .onCompletion()