<?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: Queuing and Decoupling for Performance&#8230;</title>
	<atom:link href="http://www.oracle-base.com/blog/2009/10/14/queuing-and-decoupling-for-performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oracle-base.com/blog/2009/10/14/queuing-and-decoupling-for-performance/</link>
	<description>Oracle related rants (and lots of off-topic stuff)...</description>
	<lastBuildDate>Tue, 16 Mar 2010 10:42:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tim...</title>
		<link>http://www.oracle-base.com/blog/2009/10/14/queuing-and-decoupling-for-performance/comment-page-1/#comment-112419</link>
		<dc:creator>Tim...</dc:creator>
		<pubDate>Wed, 14 Oct 2009 19:43:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.oracle-base.com/blog/?p=1104#comment-112419</guid>
		<description>Hi.

Of course, you have to apply some sense to it. I purposely said &quot;business function&quot; because business functions usually involve transactions bigger than a single insert. :)

Cheers

Tim...</description>
		<content:encoded><![CDATA[<p>Hi.</p>
<p>Of course, you have to apply some sense to it. I purposely said &#8220;business function&#8221; because business functions usually involve transactions bigger than a single insert. <img src='http://www.oracle-base.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers</p>
<p>Tim&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nigel Thomas</title>
		<link>http://www.oracle-base.com/blog/2009/10/14/queuing-and-decoupling-for-performance/comment-page-1/#comment-112417</link>
		<dc:creator>Nigel Thomas</dc:creator>
		<pubDate>Wed, 14 Oct 2009 18:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.oracle-base.com/blog/?p=1104#comment-112417</guid>
		<description>I agree but with one reservation - don&#039;t queue a unit of work that costs less than the cost of the queue and de-queue. I would almost call that an anti-pattern. Especially so when the work is dequeued by polling (which costs even when there is no work to do):

- client stores a record in a table identifying work to do
- server polls the table looking for unprocessed items...

Get the polling frequency wrong (or the indexing) and you can sink the entire app (I once flew all the way to Inverness to discover within 20 minutes that a too-frequent poll of background work was the reason for a housing benefit system disappearing up its own fundament).

I&#039;ve seen the same with the use of message beans and AQ. The AQ interface looks interrupt driven but there is polling under the counter...

Regards Nigel</description>
		<content:encoded><![CDATA[<p>I agree but with one reservation &#8211; don&#8217;t queue a unit of work that costs less than the cost of the queue and de-queue. I would almost call that an anti-pattern. Especially so when the work is dequeued by polling (which costs even when there is no work to do):</p>
<p>- client stores a record in a table identifying work to do<br />
- server polls the table looking for unprocessed items&#8230;</p>
<p>Get the polling frequency wrong (or the indexing) and you can sink the entire app (I once flew all the way to Inverness to discover within 20 minutes that a too-frequent poll of background work was the reason for a housing benefit system disappearing up its own fundament).</p>
<p>I&#8217;ve seen the same with the use of message beans and AQ. The AQ interface looks interrupt driven but there is polling under the counter&#8230;</p>
<p>Regards Nigel</p>
]]></content:encoded>
	</item>
</channel>
</rss>
