<?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 for SharePoint Interface</title>
	<atom:link href="http://sharepointinterface.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharepointinterface.com</link>
	<description>Multidisciplinary discourse on the topics of SharePoint architecture, development, and administration.</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:11:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on MOSS Object Cache Memory Tuning is not an Intuitive Process by Sean McDonough</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-536</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Mon, 06 Feb 2012 14:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-536</guid>
		<description><![CDATA[sreeharsha,

Thanks for the feedback; I&#039;m glad that you found the article useful!

You asked about the object cache getting flushed if list data changed. The answer to that question depends on your selection for the &quot;Cross List Query Cache Changes&quot; option on the Object cache settings page (from within Site Settings for the site collection). You have two options available to you: &quot;Check the server for changes every time a cross list query runs&quot; and &quot;Use the cached result of a cross list query for this many seconds.&quot;

If the former option is selected, then a change check is made each time a query is run to determine if data is stale; if it is, then the cache is flushed and refilled. If no changes have been made, then cached data is used and better performance is obtained.

If the latter option is selected, cached data is used regardless of whether or not list item data changes have taken place. This results in the best overall performance, but it does come at the cost of some potentially stale data. 

Since the data that the object cache holds in memory isn&#039;t supposed to change that often (certain web properties like Title, navigational data if you&#039;re using something like the PortalSiteMapProvider, cross-list/cross-site query information), caching without change checks is usually deemed acceptable. The performance improvements gained outweigh the potential negatives of stale data and having to check for changes on every request. Microsoft drew this conclusion in the move from SharePoint 2007 to SharePoint 2010, as well; in 2007, the server was checked for changes every time a cross-list query was run by default. In 2010, the default is to cache cross-list results for a fixed period of time without change checks.

To your final point: yes, cache flush and fill is an expensive process. If you have absolutely no tolerance for stale data, then you really don&#039;t have any option and need to check the server for changes with each query. In the majority of the environments I&#039;ve seen, though, data turns over frequently but can survive some small amount of &quot;staleness.&quot; A cache duration of 60 seconds isn&#039;t that much to tolerate from an end-user perspective, but that amount of time can save a tremendous amount of back-end processing in environments where large numbers of queries are being run (e.g., a site with many Content Query Web Parts that are rolling up data) to display data. 

Remember: even if a user goes to edit data, they&#039;ll be going directly to the lists and libraries housing it -- and that data will be up-to-date regardless of the state of the object cache.

I hope that helps!]]></description>
		<content:encoded><![CDATA[<p>sreeharsha,</p>
<p>Thanks for the feedback; I&#8217;m glad that you found the article useful!</p>
<p>You asked about the object cache getting flushed if list data changed. The answer to that question depends on your selection for the &#8220;Cross List Query Cache Changes&#8221; option on the Object cache settings page (from within Site Settings for the site collection). You have two options available to you: &#8220;Check the server for changes every time a cross list query runs&#8221; and &#8220;Use the cached result of a cross list query for this many seconds.&#8221;</p>
<p>If the former option is selected, then a change check is made each time a query is run to determine if data is stale; if it is, then the cache is flushed and refilled. If no changes have been made, then cached data is used and better performance is obtained.</p>
<p>If the latter option is selected, cached data is used regardless of whether or not list item data changes have taken place. This results in the best overall performance, but it does come at the cost of some potentially stale data. </p>
<p>Since the data that the object cache holds in memory isn&#8217;t supposed to change that often (certain web properties like Title, navigational data if you&#8217;re using something like the PortalSiteMapProvider, cross-list/cross-site query information), caching without change checks is usually deemed acceptable. The performance improvements gained outweigh the potential negatives of stale data and having to check for changes on every request. Microsoft drew this conclusion in the move from SharePoint 2007 to SharePoint 2010, as well; in 2007, the server was checked for changes every time a cross-list query was run by default. In 2010, the default is to cache cross-list results for a fixed period of time without change checks.</p>
<p>To your final point: yes, cache flush and fill is an expensive process. If you have absolutely no tolerance for stale data, then you really don&#8217;t have any option and need to check the server for changes with each query. In the majority of the environments I&#8217;ve seen, though, data turns over frequently but can survive some small amount of &#8220;staleness.&#8221; A cache duration of 60 seconds isn&#8217;t that much to tolerate from an end-user perspective, but that amount of time can save a tremendous amount of back-end processing in environments where large numbers of queries are being run (e.g., a site with many Content Query Web Parts that are rolling up data) to display data. </p>
<p>Remember: even if a user goes to edit data, they&#8217;ll be going directly to the lists and libraries housing it &#8212; and that data will be up-to-date regardless of the state of the object cache.</p>
<p>I hope that helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on MOSS Object Cache Memory Tuning is not an Intuitive Process by sreeharsha</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-531</link>
		<dc:creator><![CDATA[sreeharsha]]></dc:creator>
		<pubDate>Mon, 30 Jan 2012 05:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-531</guid>
		<description><![CDATA[Sean, the article is excellent and informative. seldom we find such a detailed and proficient content. Well on the same line, at on of our client&#039;s sharepoint farms surprisingly cache hasnt been enabled. And i am through a process of understanding the pros and cons of different caching techniques. your article certainly adds a resource to my ambit. 

I also looked at the Blob cache technique. Blob cache and object looks to be a solution to over come the problem of dead slow applications here. A couple of questions below....

But i would like to know if there are any contraints or points to be noted( which might drive me back home) if both Blob cache and object cache are implemented. 

Object cache refers to the queries (most of the times). So what if the list data is changed. Does the Cache get flushed and filled( irrespective of the Cache expiry time).

A point noted from the above article.. Cache flush, fill and serve is a costly operation. So if the list which gets frequently updated is cache enabled - sounds like an adverse effect. Can you throw some light on this. 

Thanks]]></description>
		<content:encoded><![CDATA[<p>Sean, the article is excellent and informative. seldom we find such a detailed and proficient content. Well on the same line, at on of our client&#8217;s sharepoint farms surprisingly cache hasnt been enabled. And i am through a process of understanding the pros and cons of different caching techniques. your article certainly adds a resource to my ambit. </p>
<p>I also looked at the Blob cache technique. Blob cache and object looks to be a solution to over come the problem of dead slow applications here. A couple of questions below&#8230;.</p>
<p>But i would like to know if there are any contraints or points to be noted( which might drive me back home) if both Blob cache and object cache are implemented. </p>
<p>Object cache refers to the queries (most of the times). So what if the list data is changed. Does the Cache get flushed and filled( irrespective of the Cache expiry time).</p>
<p>A point noted from the above article.. Cache flush, fill and serve is a costly operation. So if the list which gets frequently updated is cache enabled &#8211; sounds like an adverse effect. Can you throw some light on this. </p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Client-Server Interactions and the max-age Attribute with SharePoint BLOB Caching by Sean McDonough</title>
		<link>http://sharepointinterface.com/2011/02/21/client-server-interactions-and-the-max-age-attribute-with-sharepoint-blob-caching/#comment-530</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Fri, 27 Jan 2012 15:14:33 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=544#comment-530</guid>
		<description><![CDATA[Guillaume,

I haven&#039;t played with setting the headers directly (I&#039;ve relied on BLOB caching for that), but the ones you specified should generate similar results to those produced by the BLOB cache&#039;s max-age attribute setting. The technique in the article describes doing them on a page-by-page basis, and I imagine that would get tedious pretty quickly ... but it would be a good way to prove-out whether or not the technique will work for you. If it does, I recommend incorporating the header additions into an HttpModule for broader (and easier) use.

If you&#039;re going to set the cache control headers for specific pages rather than normally static assets like images, javascript, etc, be careful. Some pages in SharePoint are truly static, but just as many aren&#039;t and require some rendering change (or consideration for user, query string parameter, etc.) in a postback scenario. If you&#039;re going to start caching entire pages (as is typically accomplished through page output caching in MOSS or SharePoint Server 2010), you&#039;re going to need to test, test, and then test some more to make sure that you aren&#039;t inadvertently caching a page with content that is dynamic and should be re-rendered/changed on a postback.

- Sean]]></description>
		<content:encoded><![CDATA[<p>Guillaume,</p>
<p>I haven&#8217;t played with setting the headers directly (I&#8217;ve relied on BLOB caching for that), but the ones you specified should generate similar results to those produced by the BLOB cache&#8217;s max-age attribute setting. The technique in the article describes doing them on a page-by-page basis, and I imagine that would get tedious pretty quickly &#8230; but it would be a good way to prove-out whether or not the technique will work for you. If it does, I recommend incorporating the header additions into an HttpModule for broader (and easier) use.</p>
<p>If you&#8217;re going to set the cache control headers for specific pages rather than normally static assets like images, javascript, etc, be careful. Some pages in SharePoint are truly static, but just as many aren&#8217;t and require some rendering change (or consideration for user, query string parameter, etc.) in a postback scenario. If you&#8217;re going to start caching entire pages (as is typically accomplished through page output caching in MOSS or SharePoint Server 2010), you&#8217;re going to need to test, test, and then test some more to make sure that you aren&#8217;t inadvertently caching a page with content that is dynamic and should be re-rendered/changed on a postback.</p>
<p>- Sean</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Client-Server Interactions and the max-age Attribute with SharePoint BLOB Caching by Guillaume</title>
		<link>http://sharepointinterface.com/2011/02/21/client-server-interactions-and-the-max-age-attribute-with-sharepoint-blob-caching/#comment-529</link>
		<dc:creator><![CDATA[Guillaume]]></dc:creator>
		<pubDate>Fri, 27 Jan 2012 03:16:44 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=544#comment-529</guid>
		<description><![CDATA[Hello Sean,

Thanks for your speedy and very informative reply!
I&#039;ll start with JS optimizations as you suggested. And the HttpModule option makes sense as well. 

What do you think of using the HTML tags META HTTP-EQUIV=&quot;EXPIRE&quot; and &quot;CACHE-CONTROL&quot; ?
I see it mentionned here http://msdn.microsoft.com/en-us/library/bb727371(v=office.12).aspx#MOSS2007OptPerfWCM_PagePayloadSmallisGood but I&#039;m not sure if it&#039;s applicable to Foundation 2010.

Thanks for your help! 
Guillaume]]></description>
		<content:encoded><![CDATA[<p>Hello Sean,</p>
<p>Thanks for your speedy and very informative reply!<br />
I&#8217;ll start with JS optimizations as you suggested. And the HttpModule option makes sense as well. </p>
<p>What do you think of using the HTML tags META HTTP-EQUIV=&#8221;EXPIRE&#8221; and &#8220;CACHE-CONTROL&#8221; ?<br />
I see it mentionned here <a href="http://msdn.microsoft.com/en-us/library/bb727371(v=office.12).aspx#MOSS2007OptPerfWCM_PagePayloadSmallisGood" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb727371(v=office.12).aspx#MOSS2007OptPerfWCM_PagePayloadSmallisGood</a> but I&#8217;m not sure if it&#8217;s applicable to Foundation 2010.</p>
<p>Thanks for your help!<br />
Guillaume</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Client-Server Interactions and the max-age Attribute with SharePoint BLOB Caching by Sean McDonough</title>
		<link>http://sharepointinterface.com/2011/02/21/client-server-interactions-and-the-max-age-attribute-with-sharepoint-blob-caching/#comment-528</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Thu, 26 Jan 2012 14:13:46 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=544#comment-528</guid>
		<description><![CDATA[Thanks, Guillaume! Unfortunately, I don&#039;t know of any simple way to address your situation with Foundation 2010. 3rd party products that control caching may exist, but I don&#039;t actually know of any. I&#039;m guessing the market probably isn&#039;t that big given that most folks who build publicly facing SharePoint sites leverage SharePoint&#039;s publishing features - which, of course, require the use of SharePoint Server. 

Max-age headers are tied to BLOB caching, and BLOB caching is controlled through SharePoint Server&#039;s PublishingHttpModule (which I described in more detail here: http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/). The PublishingHttpModule only comes with SharePoint Server, so obviously SharePoint Foundation isn&#039;t going to give you any help. You&#039;d be reinventing the wheel a bit, but there&#039;s nothing stopping you from writing an HttpModule yourself that evaluates incoming requests and applies the appropriate HTTP cache control headers to carry out client-side caching of specific assets. In terms of actual coding effort, it wouldn&#039;t be at all prohibitive.

Besides cache control headers, you might see a more consistent across-the-board improvement by simply controlling how much javascript goes to the client browsers (I&#039;m assuming they&#039;re anonymous). Core.js, for example, is hundreds of kilobytes of scripting that really doesn&#039;t need to go to client browsers in anonymous usage scenarios. Chris O&#039;Brien over in the U.K. wrote a nice post (with code sample) on trimming down javascript requests, such as core.js, with some in-line code: http://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.html

I hope that helps!]]></description>
		<content:encoded><![CDATA[<p>Thanks, Guillaume! Unfortunately, I don&#8217;t know of any simple way to address your situation with Foundation 2010. 3rd party products that control caching may exist, but I don&#8217;t actually know of any. I&#8217;m guessing the market probably isn&#8217;t that big given that most folks who build publicly facing SharePoint sites leverage SharePoint&#8217;s publishing features &#8211; which, of course, require the use of SharePoint Server. </p>
<p>Max-age headers are tied to BLOB caching, and BLOB caching is controlled through SharePoint Server&#8217;s PublishingHttpModule (which I described in more detail here: <a href="http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/" rel="nofollow">http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/</a>). The PublishingHttpModule only comes with SharePoint Server, so obviously SharePoint Foundation isn&#8217;t going to give you any help. You&#8217;d be reinventing the wheel a bit, but there&#8217;s nothing stopping you from writing an HttpModule yourself that evaluates incoming requests and applies the appropriate HTTP cache control headers to carry out client-side caching of specific assets. In terms of actual coding effort, it wouldn&#8217;t be at all prohibitive.</p>
<p>Besides cache control headers, you might see a more consistent across-the-board improvement by simply controlling how much javascript goes to the client browsers (I&#8217;m assuming they&#8217;re anonymous). Core.js, for example, is hundreds of kilobytes of scripting that really doesn&#8217;t need to go to client browsers in anonymous usage scenarios. Chris O&#8217;Brien over in the U.K. wrote a nice post (with code sample) on trimming down javascript requests, such as core.js, with some in-line code: <a href="http://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.html" rel="nofollow">http://www.sharepointnutsandbolts.com/2011/01/eliminating-large-js-files-to-optimize.html</a></p>
<p>I hope that helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Client-Server Interactions and the max-age Attribute with SharePoint BLOB Caching by Guillaume</title>
		<link>http://sharepointinterface.com/2011/02/21/client-server-interactions-and-the-max-age-attribute-with-sharepoint-blob-caching/#comment-527</link>
		<dc:creator><![CDATA[Guillaume]]></dc:creator>
		<pubDate>Thu, 26 Jan 2012 09:31:47 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=544#comment-527</guid>
		<description><![CDATA[Great article! Thanks a lot for sharing your investigations. 
Do you know any way to change the cache-control data on Foundation 2010?
We&#039;re using it for a public facing website and &quot;cache-control: private,max-age=0&quot; is really affecting the performance a lot. Any 3rd party tools / IIS tweak / whatever to edit the cache-control settings?

Thanks
Guillaume]]></description>
		<content:encoded><![CDATA[<p>Great article! Thanks a lot for sharing your investigations.<br />
Do you know any way to change the cache-control data on Foundation 2010?<br />
We&#8217;re using it for a public facing website and &#8220;cache-control: private,max-age=0&#8243; is really affecting the performance a lot. Any 3rd party tools / IIS tweak / whatever to edit the cache-control settings?</p>
<p>Thanks<br />
Guillaume</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Crashing OWSTIMER.EXE after SharePoint 2010 SP1 Installation by Sean McDonough</title>
		<link>http://sharepointinterface.com/2011/07/05/crashing-owstimer-exe-after-sharepoint-2010-sp1-installation/#comment-526</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Mon, 23 Jan 2012 03:47:19 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=650#comment-526</guid>
		<description><![CDATA[Thanks for the feedback; I&#039;m glad things are working now :-)]]></description>
		<content:encoded><![CDATA[<p>Thanks for the feedback; I&#8217;m glad things are working now :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Crashing OWSTIMER.EXE after SharePoint 2010 SP1 Installation by Megren.Net</title>
		<link>http://sharepointinterface.com/2011/07/05/crashing-owstimer-exe-after-sharepoint-2010-sp1-installation/#comment-525</link>
		<dc:creator><![CDATA[Megren.Net]]></dc:creator>
		<pubDate>Sun, 22 Jan 2012 22:49:55 +0000</pubDate>
		<guid isPermaLink="false">https://sharepointinterface.wordpress.com/?p=650#comment-525</guid>
		<description><![CDATA[Thanks Sean, 

Actually, I was thinking about the UPS, if it is the main causing of the issue? because TIMER Service is crashing for each time when the synchronize job is started!!
But after I read your post and follow the steps,the issue resolved :)

Thanks again for the good troubleshooting and explaining,]]></description>
		<content:encoded><![CDATA[<p>Thanks Sean, </p>
<p>Actually, I was thinking about the UPS, if it is the main causing of the issue? because TIMER Service is crashing for each time when the synchronize job is started!!<br />
But after I read your post and follow the steps,the issue resolved :)</p>
<p>Thanks again for the good troubleshooting and explaining,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on DPM, RPC, and DCOM with Forefront TMG 2010 by Troubleshooting DPM Agent Issues &#124; The-IT-Blog</title>
		<link>http://sharepointinterface.com/2010/02/07/dpm-rpc-and-dcom-with-forefront-tmg-2010/#comment-524</link>
		<dc:creator><![CDATA[Troubleshooting DPM Agent Issues &#124; The-IT-Blog]]></dc:creator>
		<pubDate>Wed, 18 Jan 2012 15:17:30 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/2010/02/07/an-rpc-and-dcom-gotcha-with-forefront-tmg-2010/#comment-524</guid>
		<description><![CDATA[[...] Article on DPM Across TMG / WAN [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Article on DPM Across TMG / WAN [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on DPM, RPC, and DCOM with Forefront TMG 2010 by Sean McDonough</title>
		<link>http://sharepointinterface.com/2010/02/07/dpm-rpc-and-dcom-with-forefront-tmg-2010/#comment-522</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Fri, 13 Jan 2012 17:51:04 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/2010/02/07/an-rpc-and-dcom-gotcha-with-forefront-tmg-2010/#comment-522</guid>
		<description><![CDATA[You&#039;re welcome! Thanks for taking the time to share your feedback.]]></description>
		<content:encoded><![CDATA[<p>You&#8217;re welcome! Thanks for taking the time to share your feedback.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

