<?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: The Duplicate Folders Mystery, Part II</title>
	<atom:link href="http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/feed/" rel="self" type="application/rss+xml" />
	<link>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/</link>
	<description>Software, Technology, Productivity</description>
	<lastBuildDate>Thu, 29 Apr 2010 02:27:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: thebluemountain</title>
		<link>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/comment-page-1/#comment-859</link>
		<dc:creator>thebluemountain</dc:creator>
		<pubDate>Sun, 11 Apr 2010 20:52:45 +0000</pubDate>
		<guid isPermaLink="false">http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/#comment-859</guid>
		<description>well, ... 
it&#039;s might actually be weirder than that ...
when linking an object to a folder, you should use the link api. it either accept a folder&#039;s path (see the r_folder_path) or an object id (the folder one). 
now, enter the transaction in the picture:
imagine the following transaction:
1- start the transaction
2- create folder B in existing &#039;/A&#039; folder
3- create a document Tx
4- link it to the folder you just created
4- commit the transaction

next, imagine 2 threads / processes run the same transaction at same time with different value for Tx:
at the end, you&#039;d need 2 documents (ie: Tx1 and Tx2) in the same folder path /A/B: so far, so good.

however, internally, what happens when committing the second transaction ?
2nd transaction is attempting to create the &quot;same&quot; folder (given its name)  in the same parent (given its path): it succeeds !

question is now: what does succeed ? does it mean that i can have 2 folders with same name linked to the same parent ?
answer is: no.
under the hood, the content server patches the i_folder_ids of the documents (in fact, sysobjects) to match the elected &quot;real&quot; folder to use.
when does it do so ? not sure about it: when the transaction is committed, one need extra time to refetch appropriate ids for created folders: the folder&#039;s i_folder_ids and the document&#039;s i_folder_ids are then corrected by content server with the id of the elected folder&#039;s instantiation.
i didn&#039;t make any test using other attribute settings (ie: title) to figure about the logic of the folder election, but you might let developers know about it as well</description>
		<content:encoded><![CDATA[<p>well, &#8230;<br />
it&#8217;s might actually be weirder than that &#8230;<br />
when linking an object to a folder, you should use the link api. it either accept a folder&#8217;s path (see the r_folder_path) or an object id (the folder one).<br />
now, enter the transaction in the picture:<br />
imagine the following transaction:<br />
1- start the transaction<br />
2- create folder B in existing &#8216;/A&#8217; folder<br />
3- create a document Tx<br />
4- link it to the folder you just created<br />
4- commit the transaction</p>
<p>next, imagine 2 threads / processes run the same transaction at same time with different value for Tx:<br />
at the end, you&#8217;d need 2 documents (ie: Tx1 and Tx2) in the same folder path /A/B: so far, so good.</p>
<p>however, internally, what happens when committing the second transaction ?<br />
2nd transaction is attempting to create the &#8220;same&#8221; folder (given its name)  in the same parent (given its path): it succeeds !</p>
<p>question is now: what does succeed ? does it mean that i can have 2 folders with same name linked to the same parent ?<br />
answer is: no.<br />
under the hood, the content server patches the i_folder_ids of the documents (in fact, sysobjects) to match the elected &#8220;real&#8221; folder to use.<br />
when does it do so ? not sure about it: when the transaction is committed, one need extra time to refetch appropriate ids for created folders: the folder&#8217;s i_folder_ids and the document&#8217;s i_folder_ids are then corrected by content server with the id of the elected folder&#8217;s instantiation.<br />
i didn&#8217;t make any test using other attribute settings (ie: title) to figure about the logic of the folder election, but you might let developers know about it as well</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kominetz.com - The Duplicate Folders Mystery, Part I</title>
		<link>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/comment-page-1/#comment-173</link>
		<dc:creator>kominetz.com - The Duplicate Folders Mystery, Part I</dc:creator>
		<pubDate>Fri, 29 Feb 2008 11:09:44 +0000</pubDate>
		<guid isPermaLink="false">http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/#comment-173</guid>
		<description>[...] Congratulations! You now have seen the man behind the curtain. This is how Documentum creates the illusion of folders and why sometimes the metaphor breaks down. Pretty clever really, but that&#8217;s exactly why it took me three years to solve the case of the duplicate folders, coming in Part II. [...]</description>
		<content:encoded><![CDATA[<p>[...] Congratulations! You now have seen the man behind the curtain. This is how Documentum creates the illusion of folders and why sometimes the metaphor breaks down. Pretty clever really, but that&#8217;s exactly why it took me three years to solve the case of the duplicate folders, coming in Part II. [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
