<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Guaranteed Delivery in Spring Integration</title>
	<atom:link href="http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/</link>
	<description></description>
	<lastBuildDate>Thu, 18 Mar 2010 13:27:36 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mark Fisher</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93312</link>
		<dc:creator>Mark Fisher</dc:creator>
		<pubDate>Wed, 02 Dec 2009 14:32:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93312</guid>
		<description>Wilfred,

I would be very interested to see the results of some crude performance tests between your Kaha-only channel, and Spring Integration&#039;s new JMS-backed channel using ActiveMQ. That would be a great way to measure the &quot;freaking amounts of cycles&quot; ;)

Whatever performance difference exists could be considered in the trade-off, but on the other side, there are additional benefits of the &quot;full&quot; ActiveMQ solution (queue management/monitoring via JMX, the ability to *share* a channel within a load-balancing/failover strategy, transactions with redelivery, etc).

Regards,
Mark</description>
		<content:encoded><![CDATA[<p>Wilfred,</p>
<p>I would be very interested to see the results of some crude performance tests between your Kaha-only channel, and Spring Integration&#8217;s new JMS-backed channel using ActiveMQ. That would be a great way to measure the &#8220;freaking amounts of cycles&#8221; <img src='http://blog.xebia.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Whatever performance difference exists could be considered in the trade-off, but on the other side, there are additional benefits of the &#8220;full&#8221; ActiveMQ solution (queue management/monitoring via JMX, the ability to *share* a channel within a load-balancing/failover strategy, transactions with redelivery, etc).</p>
<p>Regards,<br />
Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wilfred springer</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93285</link>
		<dc:creator>Wilfred springer</dc:creator>
		<pubDate>Mon, 30 Nov 2009 20:43:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93285</guid>
		<description>Basically cutting out abstractions and making things a little bit more understandable. Nobody likes the JMS APIs, but we still accept it in between everything we do. If I can do with less, then I&#039;d prefer to do so. 

Another argument is performance. It turns out that we loose a freaking amount of cycles nowadays with piles of pointless abstractions. 

And then of course, I didn&#039;t invent ActiveMQ. ;-) But to my defense I will say that I didn&#039;t invent Kaha and I didn&#039;t invent Spring Integration either. In fact, I didn&#039;t invent anything at all, so this could never have been the not invented here syndrome manifesting itself.</description>
		<content:encoded><![CDATA[<p>Basically cutting out abstractions and making things a little bit more understandable. Nobody likes the JMS APIs, but we still accept it in between everything we do. If I can do with less, then I&#8217;d prefer to do so. </p>
<p>Another argument is performance. It turns out that we loose a freaking amount of cycles nowadays with piles of pointless abstractions. </p>
<p>And then of course, I didn&#8217;t invent ActiveMQ. <img src='http://blog.xebia.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  But to my defense I will say that I didn&#8217;t invent Kaha and I didn&#8217;t invent Spring Integration either. In fact, I didn&#8217;t invent anything at all, so this could never have been the not invented here syndrome manifesting itself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Age Mooy</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93274</link>
		<dc:creator>Age Mooy</dc:creator>
		<pubDate>Mon, 30 Nov 2009 09:57:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93274</guid>
		<description>Why would you not use a standardized API implemented by the same backend you&#039;re talking to now ? Not invented here ?</description>
		<content:encoded><![CDATA[<p>Why would you not use a standardized API implemented by the same backend you&#8217;re talking to now ? Not invented here ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wilfred Springer</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93273</link>
		<dc:creator>Wilfred Springer</dc:creator>
		<pubDate>Mon, 30 Nov 2009 09:39:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93273</guid>
		<description>I haven&#039;t tried yet. :-)</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t tried yet. <img src='http://blog.xebia.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik Rozendaal</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93272</link>
		<dc:creator>Erik Rozendaal</dc:creator>
		<pubDate>Mon, 30 Nov 2009 09:32:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93272</guid>
		<description>So how much faster is the KahaChannel compared to the JMS one?</description>
		<content:encoded><![CDATA[<p>So how much faster is the KahaChannel compared to the JMS one?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Fisher</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93235</link>
		<dc:creator>Mark Fisher</dc:creator>
		<pubDate>Fri, 27 Nov 2009 19:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93235</guid>
		<description>Nice post! We should be able to support a custom &quot;queue&quot; strategy within Spring Integration such that namespace support would be available with something like a &quot;ref&quot; attribute or inner-bean defined within a queue element. On one hand, with the introduction of MessageStore in 2.0, we will have a persistence option (via a DataSource-backed implementation), but that does not provide queue characteristics inherently. On the other hand, we could simply delegate to any java.util.BlockingQueue reference, but that defines more methods than we really need.

As in your example, all that is really needed is something to support &quot;addLast&quot; and &quot;removeFirst&quot;, and *timeouts* for each if supported by the underlying implementation. These could be mapped directly to our channel&#039;s send and receive calls or we could provide something like a BlockingQueueAdapter that does implement BlockingQueue but then delegates to such a strategy interface. In any case, my goal would be to not only support this with a single strategy hook but also to provide one or more persistent options out of the box within the 2.0 timeframe.

Regards,
Mark</description>
		<content:encoded><![CDATA[<p>Nice post! We should be able to support a custom &#8220;queue&#8221; strategy within Spring Integration such that namespace support would be available with something like a &#8220;ref&#8221; attribute or inner-bean defined within a queue element. On one hand, with the introduction of MessageStore in 2.0, we will have a persistence option (via a DataSource-backed implementation), but that does not provide queue characteristics inherently. On the other hand, we could simply delegate to any java.util.BlockingQueue reference, but that defines more methods than we really need.</p>
<p>As in your example, all that is really needed is something to support &#8220;addLast&#8221; and &#8220;removeFirst&#8221;, and *timeouts* for each if supported by the underlying implementation. These could be mapped directly to our channel&#8217;s send and receive calls or we could provide something like a BlockingQueueAdapter that does implement BlockingQueue but then delegates to such a strategy interface. In any case, my goal would be to not only support this with a single strategy hook but also to provide one or more persistent options out of the box within the 2.0 timeframe.</p>
<p>Regards,<br />
Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jos</title>
		<link>http://blog.xebia.com/2009/11/27/guaranteed-delivery-in-spring-integration/comment-page-1/#comment-93229</link>
		<dc:creator>jos</dc:creator>
		<pubDate>Fri, 27 Nov 2009 10:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/?p=3652#comment-93229</guid>
		<description>JBI NMR is not systematically backed by a persistent message store : NMR is used to manage communication Exchanges between endpoints and support patterns (in-out, in-only, ...) and sync or async communication, the exchange end state tells the initiator if it was successful or not. 
NMR can be persistent (slow) or SEDA based (fast but not persistent). In this case safe endpoints must deal with persistency and retry (such as with JMS endpoint for instance) to manage exchange failures.
Regards</description>
		<content:encoded><![CDATA[<p>JBI NMR is not systematically backed by a persistent message store : NMR is used to manage communication Exchanges between endpoints and support patterns (in-out, in-only, &#8230;) and sync or async communication, the exchange end state tells the initiator if it was successful or not.<br />
NMR can be persistent (slow) or SEDA based (fast but not persistent). In this case safe endpoints must deal with persistency and retry (such as with JMS endpoint for instance) to manage exchange failures.<br />
Regards</p>
]]></content:encoded>
	</item>
</channel>
</rss>
