<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	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>Oracle Explorations and Investigations</title>
	<atom:link href="http://markjbobak.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://markjbobak.wordpress.com</link>
	<description>All about the Oracle Database....and whatever else I decide to write about....</description>
	<lastBuildDate>Sun, 23 Oct 2011 12:58:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='markjbobak.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Oracle Explorations and Investigations</title>
		<link>http://markjbobak.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://markjbobak.wordpress.com/osd.xml" title="Oracle Explorations and Investigations" />
	<atom:link rel='hub' href='http://markjbobak.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MOTS starts one month from today!</title>
		<link>http://markjbobak.wordpress.com/2010/08/16/mots-starts-one-month-from-today/</link>
		<comments>http://markjbobak.wordpress.com/2010/08/16/mots-starts-one-month-from-today/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 00:42:08 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=48</guid>
		<description><![CDATA[The Michigan OakTable Symposium is only one month away! Have you registered yet? Some of the top Oracle speakers in the world are coming to Ann Arbor, MI September 16-17th, 2010! The speaker list includes Cary Millsap, Jonathan Lewis, Tanel &#8230; <a href="http://markjbobak.wordpress.com/2010/08/16/mots-starts-one-month-from-today/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=48&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Michigan OakTable Symposium is only one month away!</p>
<p>Have you registered yet?  Some of the top Oracle speakers in the world are coming to Ann Arbor, MI September 16-17th, 2010!</p>
<p>The speaker list includes Cary Millsap, Jonathan Lewis, Tanel Poder, Riyaj Shamsudeen, Jeremiah Wilton, and many more!</p>
<p>See the complete list of speakers, with abstracts, and complete registration information, at: <a href="http://michigan.oaktable.net/">  MOTS Home page</a></p>
<p>Don&#8217;t miss it!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=48&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2010/08/16/mots-starts-one-month-from-today/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Internals and X$ tables</title>
		<link>http://markjbobak.wordpress.com/2010/06/05/oracle-internals-and-x-tables/</link>
		<comments>http://markjbobak.wordpress.com/2010/06/05/oracle-internals-and-x-tables/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 14:34:49 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=42</guid>
		<description><![CDATA[I try to be active on the OTN Forums, particularly the Database &#8211; General forum. Very often, I&#8217;ll see people asking about Oracle internals and X$ tables and where they can learn more. The answer is generally, that you can&#8217;t. &#8230; <a href="http://markjbobak.wordpress.com/2010/06/05/oracle-internals-and-x-tables/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=42&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I try to be active on the <a href="http://forums.oracle.com">OTN Forums</a>, particularly the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=61&amp;start=0">Database &#8211; General</a> forum.  Very often, I&#8217;ll see people asking about Oracle internals and X$ tables and where they can learn more.  The answer is generally, that you can&#8217;t.  It&#8217;s not possible to read up on stuff that&#8217;s largely undocumented.  Further, you shouldn&#8217;t really care that much.  While internals can be interesting, they rarely add a great deal of real, practical value.</p>
<p>This recently came up again in an OTN forum posting.  I replied to the thread.  That answer is reproduced here:</p>
<blockquote><p>In my view, you shouldn&#8217;t look at X$ tables, or Oracle internals in general, as a body of study. You need to understand database design. Then, you need to understand fundamental principles of database systems, such as ACID. Then, you learn about various database features, and how they are implemented and how they work in Oracle. And then try to understand how specific features will help you in an application design. For example, given a particular application system, and the expected usage, should a particular entity be implemented as a heap table, index organized table, single table hash cluster, etc?</p>
<p>Now, as you gain experience, and ask questions, you&#8217;ll eventually have a question about something that isn&#8217;t clearly documented. At that point, you may ask a question here on this forum, or on Oracle-L, or whatever. Often, people will come back and say &#8220;Why do you even care about that?&#8221; But occasionally, you&#8217;ll come up with a question about an aspect of Oracle internals that it would be legitimately good and/or useful for you to know. So, by this time, you&#8217;ll probably have gained a lot of experience with Oracle, and maybe you&#8217;ll have enough knowledge to design a test case, and answer the question yourself. Or maybe you&#8217;ll be able to troll through V$ (some of which aren&#8217;t very well documented) and understand what the underlying X$ tables mean.</p>
<p>My point is, Oracle internals knowledge is something that&#8217;s picked up along the journey. It&#8217;s not a destination. You&#8217;ll find bits and pieces scattered along the journey. The destinations are things like &#8220;How to implement a viable backup and recovery strategy using RMAN?&#8221; or, &#8220;What method should be used to do SQL statement tuning?&#8221;, etc, etc. &#8220;What do I need to learn about Oracle internals?&#8221; is not a destination. Part of the problem is that the subject of internals is vast, and it&#8217;s (by definition) not documented and is subject to change. So, studying internals for the sake of internals is a losing proposition. By the time you make a dent in learning even a portion of it, Oracle will put out a new release, and suddenly, 20% or 30% or 50% of what you learned about internals is different.</p>
<p>So, don&#8217;t worry about being an internals expert. You&#8217;ll pick up the useful bits and pieces along the way.</p>
<p>Enjoy the journey!
</p></blockquote>
<p>So, that&#8217;s my opinion on learning internals.  Anyone else have thoughts or opinions on the subject?  Leave a comment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=42&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2010/06/05/oracle-internals-and-x-tables/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>UKOUG 2010 CFP is now open!</title>
		<link>http://markjbobak.wordpress.com/2010/04/12/ukoug-2010-cfp-is-now-open/</link>
		<comments>http://markjbobak.wordpress.com/2010/04/12/ukoug-2010-cfp-is-now-open/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 15:28:38 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ukoug ukoug2010 cfp]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=39</guid>
		<description><![CDATA[Can you believe it? Already?? Yes, that&#8217;s right, the Call for Papers for the UKOUG Technology and E-Business Suite conference is already open! In my opinion, this is one of the best conferences out there! Wide variety of speakers, great &#8230; <a href="http://markjbobak.wordpress.com/2010/04/12/ukoug-2010-cfp-is-now-open/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=39&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Can you believe it?  Already??  Yes, that&#8217;s right, the Call for Papers for the UKOUG Technology and E-Business Suite conference is already open!  In my opinion, this is one of the best conferences out there!  Wide variety of speakers, great topics, and, it&#8217;s not too big!  This coming year will be my fifth (or is it sixth?) year attending, and it&#8217;s a trip I&#8217;ve always enjoyed, and never regretted taking the time (or money) to attend.  </p>
<p>The CFP is open through Monday, August 2nd, 2010.  The conference itself is coming up on November 29th &#8211; December 1st, 2010, in Birmingham, England.</p>
<p>More information is available <a href="http://techandebs.ukoug.org/">here.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=39&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2010/04/12/ukoug-2010-cfp-is-now-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>Unintended Consequences</title>
		<link>http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/</link>
		<comments>http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 05:40:53 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=11</guid>
		<description><![CDATA[Hi all, My apologies for my extended absence.  Well, I ran into something interesting today, and, I thought it would be appropriate for a blog post, and apparently, I got inspired.  No startling revelation here, this is just a bit &#8230; <a href="http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=11&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>My apologies for my extended absence.  Well, I ran into something interesting today, and, I thought it would be appropriate for a blog post, and apparently, I got inspired.  No startling revelation here, this is just a bit of a cautionary tale about the unintended consequences of using a new feature.  A quick search of <a href="http://tahiti.oracle.com">the Oracle Documentation</a> confirms that the <code><strong>skip locked</strong></code> directive of the <code><strong>select for update</strong></code> statement was introduced in Oracle 11g, version 11.1.  But, before we dive into that, let&#8217;s review the functionality of <code><strong>select for update</strong></code> through versions of Oracle preceding 11g.</p>
<p><span id="more-11"></span></p>
<p><strong>Select for update</strong></p>
<p>First, a bit about <code><strong>select for update</strong></code> in general.  The <code><strong>select for update</strong></code> functionality has been available in Oracle since some very ancient release of Oracle.  It allows for the user to lock specific rows in a table, without changing them.  This is generally used as part of a pessimistic locking strategy.  (See <a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5771117722373">here</a> for an explanation of optimistic and pessimistic locking.)  <code><strong>select for update</strong></code> default behavior is to wait for locks.  That is, Oracle will do a read consistent view of the data, to identify the set of rows that will be locked, and then do current mode gets to impose row-level locks on that set of rows.  If, when attempting to lock the set of rows, a row is encountered that is already locked by another session, the session will wait, indefinitely, on a TX enqueue, for a commit or rollback to free the lock, and then execution will continue.</p>
<p><strong>Select for Update with nowait</strong></p>
<p>Oracle also provides for a <code><strong>nowait</strong></code> option.  If the developer codes <code><strong>select ... from .... for update <em>nowait</em></strong></code>, then the select for update will proceed in much the same way described above, except, if it encounters a row locked by a different session, rather than waiting, it will raise an <code><strong>ORA-00054 resource busy and NOWAIT specified</strong></code> error and statement level rollback will occur.</p>
<p><strong>Select for Update with wait n</strong></p>
<p>The functionality of <code><strong>select for update</strong></code>, with the option of <code><strong>nowait</strong></code>, was unchanged from some very ancient version of Oracle, up until Oracle 9i Release 2.  Starting with Oracle 9i Release 2, (version 9.2.0), Oracle introduced the <code><strong>wait n</strong></code> clause.  This allows the developer to modify the behavior of the <code><strong>select for update</strong></code> to wait up to <em>n</em> seconds.  If a lock cannot be acquired on a particular row for <em>n</em> seconds, Oracle will raise an <code><strong>ORA-30006 resource busy; acquire with WAIT timeout expired</strong></code> error, and statement level rollback will occur.</p>
<p><strong>New in 11g!</strong></p>
<p>Starting with 11g, (version 11.1.0), Oracle introduced the <code><strong>skip locked</strong></code> clause.  This clause allows for the <code><strong>select for update</strong></code> to skip any rows it encounters that are already locked.  In this way, it&#8217;s neither subject to waiting for locks, nor to the ORA-00054 or ORA-30006 error.  It simply locks what it can, and moves on.  This can be quite useful, when the application design calls for single or multiple producers of data (programs that add rows to a table) and multiple consumers (concurrently executing programs that consume, or delete, rows from the table).  In this scenario, and absent any strategy to partition the data so that the consumers do not interfere with each other, implementing either a wait or nowait strategy with <code><strong>select for update</strong></code> simply won&#8217;t work.  But, the <code><strong>skip locked</strong></code> functionality fits the bill very well.  Each consumer can query the table, locking the rows that are not locked, and skipping over any rows already locked by someone else.  All the consumers can work, and none of them serialize behind each other.  Note that this functionality has actually been available in Oracle since at least version 8.0, (the Advanced Queueing feature is built on it), but was not documented, and therefore not supported by Oracle, until version 11.1.</p>
<p><strong>Unintended Consequences</strong></p>
<p>So, here begins my tale of unintended consequences.  We have an application in which there are several concurrent processes, all running the same code, consuming rows from a table.  The program does a <code><strong>select for update skip locked</strong></code>, does some processing, and then finally deletes the locked rows.  The SQL is similar in form to:<br />
<code><br />
<strong>select ...<br />
from [table_name]<br />
where [some predicates]<br />
and rownum &lt; 101<br />
for update skip locked;</strong><br />
</code></p>
<p>So, find the first 100 rows in the table that satisfy the predicates, skipping over any rows that are already locked.  Now, one would expect, given that the number of rows in the table is far greater than 100 * (number of concurrent consumers), each consumer process should have no problem identifying 100 rows for processing.  I was a bit puzzled then, when it was reported to me that Oracle was actually returning significantly less than 100 rows.  The code is simple, the logic is simple, so, what&#8217;s going on?  How could Oracle return less than 100 rows, when there&#8217;s plenty of data in the table?  Note that there is <em>no error being raised</em>, Oracle is simply going through the table, locking what it can, skipping what it can&#8217;t,  and coming up with less than 100 rows.  This in spite of the fact that there are 50 or less consumer processes, and that there are 10s of thousands (sometimes 100s of thousands) of rows in the table.  The most rows that could be locked at any one time would be 50 consumer processes * 100 rows per process = 5000 rows.  So, what&#8217;s going on?  After reviewing the application level log files, and and several discussions and walk-throughs of the code, we were stumped.  So, I try enabling 10046 trace, and sure enough, significantly less than 100 rows are being locked.  Simple queries prove that there are more than enough eligible rows in the table.  So, again, we are stumped.  Another test, running only one consumer process, shows that the code behaves as expected when run single-threaded.  So, there&#8217;s a concurrency problem&#8230;.but what?  Is there some bizarre bug in the <code><strong>skip locked</strong></code> functionality?  It seems premature to consider that, so I decided to rule out that possibility, as extremely unlikely, unless I can find more direct evidence of that fact.  So, what next?  Well, I wondered, perhaps there is a diagnostic event that would reveal what&#8217;s happening under the covers with <code>skip locked</code>?  Well, I tried poking around and looking for such an event, but, to date, I&#8217;m not aware of any such functionality.  So, how else to continue the investigation?  Remember, as I said before, no error is being raised.  The only symptom is that the number of rows returned is much smaller than expected.  After another brainstorming session with the architect who designed and wrote the code, we came up with the idea to change the code in our test environment, and remove the <code><strong>skip locked</strong></code> clause, causing the code to block, and allowing us (hopefully) to clearly see where the locking is happening.  Sure enough, when we did that, the problem revealed itself almost immediately, and the solution was clear and obvious.  When we started multiple, concurrent consumer programs, one wait event was immediately obvious and overwhelming:</p>
<p><code><strong>enq: TX - allocate ITL entry</strong></code></p>
<p>So, clearly, the root cause of all my problems and headaches is a shortage of ITL entries in the header of the data block.  So, the blocking is happening at the block-level, not the row-level.  This explains why locks are not being taken on rows that are not locked, even when the cursor has not yet identified 100 candidate rows.  Due to the high level of concurrency, the number of ITL slots (8k block size * 10% PCTFREE = 819 bytes free space per block / 24 bytes per ITL entry = a max of 34 ITL entries per block) is not sufficient.  We are running up to 50 concurrent consumer processes, and may want to go as high as 100, and the number of rows per block is well over 100 in many cases.  So, now that we&#8217;ve gotten to the bottom of the problem, the solution is fairly straightforward and simple.  A simple <code><strong>alter table ... move nologging initrans 110</strong></code> and a rebuild of the indexes, and we are back in business.</p>
<p><strong>Conclusion</strong></p>
<p>In my opinion, the interesting part of this little puzzle, is the effect of the <code><strong>skip locked</strong></code> functionality.  The whole point, is to allow the code to skip <em><strong>rows</strong></em> that have been locked by another session, and continue running.  That&#8217;s great, and allows for coding applications that can be highly scalable and performant.  However, it&#8217;s important to understand that the <code><strong>skip locked</strong></code> clause means that Oracle will skip any time a TX lock is encountered, <em><strong>including TX locks that are happening at the block-level</strong></em>.  The problem is, if you&#8217;re encountering <em><strong>non-row level</strong></em> locking, <code><strong>skip locked</strong></code> is still going to skip over the locked resource and move on.  <strong><em>No error will be reported!</em></strong> This may lead to unpredictable results.  The moral of the story is that <code><strong>skip locked</strong></code> doesn&#8217;t <em>necessarily</em> mean skip locked rows, it means skip <em>any locked resource</em>.</p>
<p>It seems that there is always how we <em>think</em> a feature works, and how it <em>actually</em> works.</p>
<p>So, this concludes my investigation.  I hope it helps someone in the future avoid a similar problem.</p>
<p>I&#8217;m going to make an attempt to blog more regularly, but, I know better than to make any promises!  Until next time&#8230;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=11&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>Planning for Birmingham&#8230;.</title>
		<link>http://markjbobak.wordpress.com/2008/07/25/planning-for-birmingham/</link>
		<comments>http://markjbobak.wordpress.com/2008/07/25/planning-for-birmingham/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 19:56:54 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=7</guid>
		<description><![CDATA[Or should I say &#8216;Brum&#8217;? Well, I&#8217;ve just been notified that one of my abstract submissions, &#8220;Introduction to Locks and Enqueues&#8221;, has been accepted by the UKOUG for the 2008 Annual Conference, coming up in December.  I&#8217;m really looking forward &#8230; <a href="http://markjbobak.wordpress.com/2008/07/25/planning-for-birmingham/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=7&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Or should I say &#8216;Brum&#8217;?</p>
<p>Well, I&#8217;ve just been notified that one of my abstract submissions, &#8220;Introduction to Locks and Enqueues&#8221;, has been accepted by the <a title="UKOUG" href="http://www.ukoug.org/">UKOUG</a> for the <a title="2008 UKOUG Annual Conference" href="http://conference.ukoug.org/" target="_blank">2008 Annual Conference</a>, coming up in December.  I&#8217;m really looking forward to it.  This will be my 4th year attending.  It&#8217;s also the first year the conference will be expanded to a full 5-day week.  There&#8217;s bound to be a ton of great material.  I have to say, even for someone coming from overseas, this conference is well worth your time and money.</p>
<p>See you in Birmingham, er, Brum!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/markjbobak.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/markjbobak.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=7&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2008/07/25/planning-for-birmingham/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>So, there&#8217;s two posts, guess I&#8217;m on the blogging bandwagon&#8230;</title>
		<link>http://markjbobak.wordpress.com/2008/06/09/so-theres-two-posts-guess-im-on-the-blogging-bandwagon/</link>
		<comments>http://markjbobak.wordpress.com/2008/06/09/so-theres-two-posts-guess-im-on-the-blogging-bandwagon/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 18:16:46 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=5</guid>
		<description><![CDATA[As the subject says, there&#8217;s my first two real posts, so, I guess I&#8217;m blogging.  I won&#8217;t guarantee how active I&#8217;ll be here, or how much of what I write will be Oracle, as opposed to other stuff, but, for &#8230; <a href="http://markjbobak.wordpress.com/2008/06/09/so-theres-two-posts-guess-im-on-the-blogging-bandwagon/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=5&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As the subject says, there&#8217;s my first two real posts, so, I guess I&#8217;m blogging.  I won&#8217;t guarantee how active I&#8217;ll be here, or how much of what I write will be Oracle, as opposed to other stuff, but, for what it&#8217;s worth, here I am.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/markjbobak.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/markjbobak.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=5&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2008/06/09/so-theres-two-posts-guess-im-on-the-blogging-bandwagon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>11g is more deadlock sensitive than 10g?</title>
		<link>http://markjbobak.wordpress.com/2008/06/09/11g-is-more-deadlock-sensitive-than-10g/</link>
		<comments>http://markjbobak.wordpress.com/2008/06/09/11g-is-more-deadlock-sensitive-than-10g/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 18:13:52 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=4</guid>
		<description><![CDATA[I ran into a situation over the weekend, where an application and schema, which were stable under 10.2.0.3, started hitting ORA-00060 deadlocks in 11.1.0.6, in spite of the fact that no application code changes had occurred.  It seems that 11g &#8230; <a href="http://markjbobak.wordpress.com/2008/06/09/11g-is-more-deadlock-sensitive-than-10g/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=4&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I ran into a situation over the weekend, where an application and schema, which were stable under 10.2.0.3, started hitting ORA-00060 deadlocks in 11.1.0.6, in spite of the fact that no application code changes had occurred.  It seems that 11g was more sensitive to deadlocks in this situation than 10gR2 was.</p>
<p>The situation developed this way.  We are starting to work with 11g.  We have a brand new application that is all new from the ground up, so, we thought we&#8217;d give 11g a try, as there is no legacy code base, and it seemed like a good opportunity to get our feet wet with 11g.  Well, we have an RMAN based backup system, so, to be able to backup the new 11g development database, I need to upgrade the RMAN catalog and catalog database to 11g.  When attempting to do so, I ran into an upgrade bug, which, without getting into the ugly details, meant that I needed to restore my catalog database from backup.  Open SR with Oracle, after much going round and round with them, they determined that my best course of action would be to upgrade the 10g database to 11g, and then NOT upgrade the 10g catalog to 11g (which is where I hit the bug initially).  Instead, leave the catalog owned by the &#8216;RMAN&#8217; user at 10.2.0.3.  Create a new user, &#8216;RMAN11G&#8217;, and create a brand new 11g catalog there.  Now, I can continue to backup all my pre-11g databases to the RMAN user, and when I have an 11g database, I connect to the same rman catalog database, but as RMAN11g, rather than as RMAN.  So, I did the upgrade on Friday night, and everything seemed to go well.  I tried a few archive log backups, just to make sure everything seemed to be fine.</p>
<p>So, that&#8217;s a bit of the background.</p>
<p>On Saturday, I start getting pages, backups are failing.  And they&#8217;re failing w/ ORA-00060 deadlock detected.  Huh?  I&#8217;ve never heard of this happening before.  This makes no sense to me.  A quick look at the backup log, and it appears to happen on catalog resync.  So, I look at a sampling of the trace files, and they all seem to be deadlocking on TM enqueues with mode held &#8216;SX&#8217; and mode waited on &#8216;SSX&#8217;.  So, this is definitely due to foreign keys referencing unindexed columns.  No doubt in my mind about that.  So, I go over to <a title="Steve Adams' Website" href="http://www.ixora.com.au/" target="_blank">Steve Adams&#8217; website</a>, and find <a title="the script" href="http://www.ixora.com.au/scripts/sql/missing_fk_indexes.sql" target="_blank">the script</a> that identifies all the columns used in foreign key relationships that are missing indexes, and I slightly modify that script to generate DDL to create the missing indexes.   I run that, create all the missing indexes, and the deadlock problem goes away.</p>
<p>But, the mystery, in my mind, is why this happened at all.  Note that the deadlocks were happening when a 10.2.0.3 database tried to backup archive logs running 10.2.0.3 version of RMAN connecting to a 10.2.0.3 catalog living in a 11.1.0.6 database.  The same scenario worked fine for months and months, when the 10.2.0.3 catalog was in a 10.2.0.3 database.  So, I upgraded the database, but not the catalog or the RMAN binary that was being used.  That is, the &#8220;application&#8221; (RMAN binary and RMAN catalog) were not upgraded.</p>
<p>This would seem to imply that 11g is somehow <em><strong>more </strong></em>deadlock sensitive than 10gR2 is?  That strikes me as troublesome&#8230;.and definitely concerns me, if that&#8217;s really the case.  I&#8217;m not sure I have enough information to prove that this is the case, but I&#8217;m definitely cautious and suspicious, at the moment&#8230;..  It wouldn&#8217;t be the first time that an Oracle upgrade exacerbated a situation, rather than improve it&#8230;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/markjbobak.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/markjbobak.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=4&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2008/06/09/11g-is-more-deadlock-sensitive-than-10g/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>Bit of a stumper&#8230;.</title>
		<link>http://markjbobak.wordpress.com/2008/06/09/bit-of-a-stumper/</link>
		<comments>http://markjbobak.wordpress.com/2008/06/09/bit-of-a-stumper/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 17:47:09 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://markjbobak.wordpress.com/?p=3</guid>
		<description><![CDATA[Well, I finally decided I have something noteworthy to blog about.  This was a bit of a stumper, that we ran into the other day&#8230;.I did finally get to the bottom of it, and I thought it worth a mention, &#8230; <a href="http://markjbobak.wordpress.com/2008/06/09/bit-of-a-stumper/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=3&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, I finally decided I have something noteworthy to blog about.  This was a bit of a stumper, that we ran into the other day&#8230;.I did finally get to the bottom of it, and I thought it worth a mention, here.</p>
<p><!--[if gte mso 9]&amp;gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &amp;lt;![endif]--><!--[if gte mso 9]&amp;gt;                                                                                                                                            &amp;lt;![endif]--></p>
<p class="MsoNormal">We have a three node RAC running 10.2.0.3 on DL-585s.</p>
<p class="MsoNormal">
<p class="MsoNormal">This is a reasonably busy system, but, these boxes have lots of horsepower, so, no serious I/O or CPU bottlenecks are observed.  We seem to be humming along when we hit ORA-257 (archiver error, connect internal only until freed).  I think “Ok, the archivelog backup process is failing to run, and the archivelog area is full”.  But, I find that the 100GB archivelog area is nearly empty.  And we’re still stuck on ORA-257.  What the ….?  Some weird 10.2.0.3 bug, perhaps?  We notice that bouncing the stuck instance frees up the problem…..very strange indeed.</p>
<p class="MsoNormal">
<p class="MsoNormal">To make a long story short, we opened an SR, uploaded lots and lots of logs, and discovered…..when this server was set up, processes was set to 500, which is too small.  The process table filled up, and at archive time, apparently the archiver spawns a process to talk to ASM  (archivelog area is under ASM), and since the process table was full, it couldn’t do that, so it reports the (misleading) ORA-257 error.  We bumped processes to 1000 for all three nodes, and Voila! Problem solved.</p>
<p class="MsoNormal">
<p class="MsoNormal">So, anyhow, just thought I’d mention that scenario.  If you hit ORA-257 and your ASM managed archivelog area is not full, think <strong><em>PROCESSES</em></strong> parameter…</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/markjbobak.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/markjbobak.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=3&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2008/06/09/bit-of-a-stumper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://markjbobak.wordpress.com/2008/04/30/hello-world/</link>
		<comments>http://markjbobak.wordpress.com/2008/04/30/hello-world/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 19:44:41 +0000</pubDate>
		<dc:creator>mbobak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Just getting started here at WordPress.com.  Soon this blog will be filled with my insights into the Oracle database.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=1&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just getting started here at <a href="http://wordpress.com/">WordPress.com</a>.  Soon this blog will be filled with my insights into the Oracle database.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/markjbobak.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/markjbobak.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjbobak.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjbobak.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjbobak.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjbobak.wordpress.com&amp;blog=3617348&amp;post=1&amp;subd=markjbobak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://markjbobak.wordpress.com/2008/04/30/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a68706fa5d2665f4dd0c6452b4e844c7?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">mbobak</media:title>
		</media:content>
	</item>
	</channel>
</rss>
