<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Synchronisation</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2008/05/12/synchronisation/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2008/05/12/synchronisation/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Thu, 23 May 2013 12:47:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: CPU usage &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2008/05/12/synchronisation/#comment-32244</link>
		<dc:creator><![CDATA[CPU usage &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Thu, 13 Nov 2008 12:37:20 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=364#comment-32244</guid>
		<description><![CDATA[[...] step in the code.  The code above shows a simple &#8220;pause&#8221; - I&#8217;ll be posting a note some time in the future about the method I usually [...]]]></description>
		<content:encoded><![CDATA[<p>[...] step in the code.  The code above shows a simple &#8220;pause&#8221; &#8211; I&#8217;ll be posting a note some time in the future about the method I usually [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Rivenes</title>
		<link>http://jonathanlewis.wordpress.com/2008/05/12/synchronisation/#comment-31075</link>
		<dc:creator><![CDATA[Andy Rivenes]]></dc:creator>
		<pubDate>Tue, 20 May 2008 16:19:21 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=364#comment-31075</guid>
		<description><![CDATA[Hi Jonathan, 
I can attest to the usefulness of dbms_lock. I&#039;ve built a RAC based data loading system, and I use dbms_lock to control access to the load tables. 

A load table is partitioned and has a set of &quot;rolling&quot; partitions. Multiple processes are continuously &quot;loading&quot; and these processes all take a &quot;share&quot; lock on the table through dbms_lock while they are inserting data. 

When partition maintenance must occur (i.e. adding a new daily partition) that process requests an &quot;exclusive&quot; lock on the load table. This effectively blocks future &quot;share&quot; lock requests, and once all of the current &quot;share&quot; locks are released the partition maintenance process will have an &quot;exclusive&quot; lock and can add the new partition. 

Of course this is all application level coordination, but with multiple processes running in a RAC environment the global lock coordination takes much longer to accomplish in a free for all than it does by temporarily halting access to the load table. 

The beauty of this is that it all coordinates automagically and since it&#039;s based on Oracle&#039;s own locking mechanism it&#039;s been rock solid.
]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathan,<br />
I can attest to the usefulness of dbms_lock. I&#8217;ve built a RAC based data loading system, and I use dbms_lock to control access to the load tables. </p>
<p>A load table is partitioned and has a set of &#8220;rolling&#8221; partitions. Multiple processes are continuously &#8220;loading&#8221; and these processes all take a &#8220;share&#8221; lock on the table through dbms_lock while they are inserting data. </p>
<p>When partition maintenance must occur (i.e. adding a new daily partition) that process requests an &#8220;exclusive&#8221; lock on the load table. This effectively blocks future &#8220;share&#8221; lock requests, and once all of the current &#8220;share&#8221; locks are released the partition maintenance process will have an &#8220;exclusive&#8221; lock and can add the new partition. </p>
<p>Of course this is all application level coordination, but with multiple processes running in a RAC environment the global lock coordination takes much longer to accomplish in a free for all than it does by temporarily halting access to the load table. </p>
<p>The beauty of this is that it all coordinates automagically and since it&#8217;s based on Oracle&#8217;s own locking mechanism it&#8217;s been rock solid.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
