<?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/"
	>

<channel>
	<title>Where Technology Meets Teamwork &#187; Team Foundation Server</title>
	<atom:link href="http://blog.nwcadence.com/category/tfs/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nwcadence.com</link>
	<description>Thoughts on TFS, Lean, Agile, Kanban, Scrum and other collaborative technologies and techniques</description>
	<lastBuildDate>Thu, 26 Jan 2012 17:15:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>What are the most commonly asked questions you&#8217;ve had by customers this year, and how did you answer it?</title>
		<link>http://blog.nwcadence.com/2011/11/what-are-the-most-commonly-asked-questions-youve-had-by-customers-this-year-and-how-did-you-answer-it/</link>
		<comments>http://blog.nwcadence.com/2011/11/what-are-the-most-commonly-asked-questions-youve-had-by-customers-this-year-and-how-did-you-answer-it/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 18:46:00 +0000</pubDate>
		<dc:creator>laura.lamborn</dc:creator>
				<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS 2010]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/11/what-are-the-most-commonly-asked-questions-youve-had-by-customers-this-year-and-how-did-you-answer-it/</guid>
		<description><![CDATA[We asked some of our consultants to answer the following: What are the most commonly asked questions you’ve had by customers this year, and how did you answer it? Here&#8217;s what they had to say:&#160; How should I upgrade to &#8230; <a href="http://blog.nwcadence.com/2011/11/what-are-the-most-commonly-asked-questions-youve-had-by-customers-this-year-and-how-did-you-answer-it/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div><font size="2"><font color="#000000">
<div style="line-height: normal; margin: 0in 0in 10pt"><span style="color: black; font-size: 10pt">We asked some of our consultants to answer the following: <strong><em>What are the most commonly asked questions you’ve had by customers this year, and how did you answer it?</em></strong></span></div>
<div style="line-height: normal; margin: 0in 0in 10pt"><em><span style="color: black; font-size: 10pt">Here&#8217;s what they had to say:</span></em>&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 10pt"><strong><span style="font-size: 10pt">How should I upgrade to TFS 2010? </span></strong></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 0pt"><span style="color: black; font-size: 10pt">Although &#8220;it depends&#8221; is not the answer anyone wants, it truly does depend on numerous factors including your infrastructure, resources, past TFS performance, &#8220;future-proofing&#8221; your environment, and what 2010 features you want to utilize.</span></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 0pt"><span style="color: black; font-size: 10pt">In my experience, the ideal way to upgrade is to always migrate to new hardware.&nbsp; Migrating to new hardware allows for:</span></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"><span style="font-size: 10pt">·<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Your existing infrastructure to stay in place, allowing it to be easily reverted to in the case of a failed upgrade.</span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"><span style="font-size: 10pt">·<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Easy upgrades to the latest operating systems (including full 64 bit support) and related applications (SharePoint, SSRS). </span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"><span style="font-size: 10pt">·<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Upgrading your hardware, environment, and infrastructure architecture to boost performance. </span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"><span style="font-size: 10pt">·<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Easy testing of the upgrade process without interfering with the existing infrastructure. </span></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 0pt"><span style="color: black; font-size: 10pt">Not everyone has the luxury of migrating to new hardware or updating to the latest and greatest. New hardware or not, there are still some common mistakes to watch out for:</span></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"><span style="font-size: 10pt">·<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Ensure you have enough free disk space available for the upgrade process to complete.&nbsp; You generally need free space one and a half times the size of your databases to complete the upgrade to account for temporary growth in the transaction logs.&nbsp; So if your TFS databases are 40GB, ensure you have at least 60GB of disk space free (please see the installation guide for exact details on disk space requirements). </span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 1in"><span style="font-size: 10pt">o<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Plan for increased disk growth if you will be taking advantage of the new testing features including video recordings and detailed logging information. </span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 1in"><span style="font-size: 10pt">o<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Do not upgrade without a solid strategy for backups and disaster recovery. This is critical should you need to revert, as it will allow you to continue working without impacting your TFS user base. </span></div>
<div style="line-height: normal; text-indent: -0.25in; margin: 0in 0in 0pt 1in"><span style="font-size: 10pt">o<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-size: 10pt">Install any necessary client patches and if possible have users test connectivity on a test instance before the production upgrade to prevent unnecessary user and client connectivity issues post production. </span></div>
<div style="line-height: normal; margin: 0in 0in 0pt 1in">&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 0pt"><span style="color: black; font-size: 10pt">There is no right answer on how a TFS 2010 upgrade should be accomplished. Each environment is unique in both needs and desires. By keeping yourself updated with latest documentation, taking your time to plan and test the process, and seeking outside help when you are unsure, you will be well on your way to a successful TFS 2010 upgrade.</span></div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp; </div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp;</div>
<div style="line-height: normal; margin: 0in 0in 0pt">&nbsp; <span style="color: black; font-size: 10pt"><u><img alt="" align="right" src="http://www.enewsbuilder.net/nwcadence/ShadTimm_sm(3).jpg" width="63" height="79"></u>- Shad Timm</span></div>
<p></font></font></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/11/what-are-the-most-commonly-asked-questions-youve-had-by-customers-this-year-and-how-did-you-answer-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Two New, Useful SSRS Data Sources</title>
		<link>http://blog.nwcadence.com/2011/10/adding-two-new-useful-ssrs-data-sources/</link>
		<comments>http://blog.nwcadence.com/2011/10/adding-two-new-useful-ssrs-data-sources/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 22:29:11 +0000</pubDate>
		<dc:creator>JamesTupper</dc:creator>
				<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/10/adding-two-new-useful-ssrs-data-sources/</guid>
		<description><![CDATA[ Adding Two New, Useful SSRS Data Sources- By James Tupper Introduction Watching the performance of your TFS 2010 server is important. And having reports that show historical trending is very useful. Luckily, Grant Holliday, Microsoft Program Manager for Visual Studio &#8230; <a href="http://blog.nwcadence.com/2011/10/adding-two-new-useful-ssrs-data-sources/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em></em> Adding Two New, Useful SSRS Data Sources- By James Tupper</p>
<p><strong>Introduction</strong></p>
<p>Watching the performance of your TFS 2010 server is important. And having reports that show historical trending is very useful. Luckily, Grant Holliday, Microsoft Program Manager for Visual Studio Team Foundation Server, has two blog posts featuring some excellent report packs. Both sets of reports can be used against TFS 2010 (although one set requires some extensive modifications).</p>
<p>You can view the blog posts here:</p>
<ul>
<li><a href="http://blogs.msdn.com/b/granth/archive/2009/02/03/announcing-tfs-performance-report-pack.aspx">TFS Performance Report Pack</a></li>
<li><a href="http://blogs.msdn.com/b/granth/archive/2010/07/12/administrative-report-pack-for-team-foundation-server-2010.aspx">TFS Administration Report Pack</a></li>
</ul>
<p>The <strong>Performance Report Pack</strong> provides a lot of great information about the state of the TFS 2010 Farm, including historical trend data for both version control and work item operations. It is great for discovering, if you are experiencing intermittent performance problems. Originally, it was written for TFS 2008, but it can be upgraded to TFS 2010.</p>
<p>The <strong>TFS Administration Report Pack</strong> is a set of three reports that show data about the TFS Analysis Services cube and data warehouse.</p>
<p>The main issue with both of these report packs is that the instructions for creating the data sources for TFS 2010 are not included, or better said, the instructions are easy to figure out, but not specific enough to be completed trivially and with ease.</p>
<p>The following steps make creating the required SSRS data sources trivial.</p>
<p><strong>Steps for Adding Data Sources</strong></p>
<p>The report data source is needed by most of the RDLs that are provided with the report packs on Grant Holliday’s blog, and it is tied to the Tfs_Warehouse database. While the configuration data source is not used by all of the reports, it is still needed and is tied to the Tfs_Configuration database.</p>
<p>To add the data sources, you will want to go to your report server website with the following URL structure:</p>
<ul>
<li><span style="text-decoration: underline;"><a href="http://%3cservername%3e/Reports">http://&lt;servername&gt;/Reports</a></span></li>
</ul>
<p>Personally, I opened an RDP session with my server and used <a href="http://localhost/Reports">http://localhost/Reports</a> to access the SSRS website. From here you should see the SSRS Home page.</p>
<p>At the top of the page there is a ribbon of buttons with “New Data Source” being the second option. Click this button to start adding a new Data Source.</p>
<p><strong><img src="http://content.ll-0.com/nwcadence/figure_1.jpg?i=072711143235" border="0" alt="" width="400" height="97" /></strong></p>
<p><strong>Figure 1: </strong>New Data Source button</p>
<p>We want to configure each data source with specific names to be sure that the reports in these packs will be able to connect to them without an issue. For the Tfs_Warehouse data source we want to fill out the new Data Source Form with the following information:</p>
<p><strong><img src="http://content.ll-0.com/nwcadence/figure_2.jpg?i=072711143235" border="0" alt="" width="500" height="448" /></strong></p>
<p><strong>Figure 2: </strong>Report Data Source Settings :</p>
<ul>
<li>Name : Tfs2010ReportDS</li>
<li>Connection String : Data Source = &lt;TFSServer&gt;;Initial Catalog=Tfs_Warehouse</li>
<li>Credentials stored securely in report server checked
<ul>
<li>User Name : This should be whatever you use for your TFS reporting services (i.e. TFSReport)</li>
<li>Use as Windows credentials when connecting to the data source</li>
</ul>
</li>
</ul>
<p>Click okay, and the first data source will be created. To create the data source that is tied to the Tfs_Configuration database, click the “New Data Source” again, as done previously, and use the following configuration:</p>
<p><strong><img src="http://content.ll-0.com/nwcadence/figure_3.jpg?i=072711143235" border="0" alt="" width="500" height="449" /></strong></p>
<p><strong>Figure 3:</strong> Configuration Data Source Settings</p>
<ul>
<li>Name : Tfs2010ConfigurationDS</li>
<li>Connection string : Data Source=&lt;TFSServer&gt;;Initial Catalog=Tfs_Configuration</li>
<li>Credentials stored securely in report server checked
<ul>
<li>User Name : This should be whatever you use for your TFS reporting services (i.e. TFSReport)</li>
<li>Use as Windows credentials when connecting to the data source</li>
</ul>
</li>
</ul>
<p>In these two screen shots I used the Administrator account for the data sources, but I want to make it clear that the account used for the TFS reporting services is the account that should be used for these data sources.</p>
<p>Once all is said and done, your SSRS Home page should have the two new data source listed with a “!New” tag sitting next to them.</p>
<p><strong><img src="http://content.ll-0.com/nwcadence/figure_4.jpg?i=072711143235" border="0" alt="" width="500" height="151" /></strong></p>
<p><strong>Figure 4 :</strong> SSRS Home Page after the two data sources have been added</p>
<p><strong>Conclusion</strong></p>
<p>With these data sources added to the SSRS web site, getting the reports in the TFS Performance Report Pack and the TFS Administration Report Pack to work is just a matter of uploading them. Having these reports can add a great deal of value to your Kanban or Scrum process, and being able to quickly and quite easily set them up is a huge bonus.</p>
<p>-James Tupper</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/10/adding-two-new-useful-ssrs-data-sources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TFS 2010 SP1 Upgrade Bug May Cause Warehouse Update to Fail with Error TF221122</title>
		<link>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/</link>
		<comments>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 17:15:32 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Team Foundation Build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Visual Studio 2010 Team Foundation Server]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/?p=28378</guid>
		<description><![CDATA[Applying TFS 2010 SP1 may, in rare instances, cause an error which prevents the data warehouse (and, by extension, the analysis cube) from updating work item information beyond the date and time at which the SP1 was installed.&#160; This means &#8230; <a href="http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/10/image1.png"><img style="margin: 0px 20px 0px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://blog.nwcadence.com/wp-content/uploads/2011/10/image_thumb1.png" width="156" height="144"></a></p>
<p>Applying TFS 2010 SP1 may, in rare instances, cause an error which prevents the data warehouse (and, by extension, the analysis cube) from updating work item information beyond the date and time at which the SP1 was installed.&nbsp; This means all work item reports will freeze at the date in which TFS 2010 SP1 was applied.&nbsp; In addition, the Work Item Tracking Warehouse Sync job will hang and never complete.</p>
<p><br clear="all"></p>
<hr />
<h2>Symptoms</h2>
<p>After a TFS 2010 SP1 install, work items are no longer processed in the data warehouse, however all of the other elements (such as version control, test cases, etc) are processed. In addition, the Work Item Tracking Warehouse Sync job hangs and never finishes. If you view the data warehouse or the analysis cube, you will find no new data has been recorded since the install of TFS 2010 SP1. </p>
<p>In addition, you will receive an error in the event log similar to this: <strong>TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection</strong></p>
<h2><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d">Bottom Line Up Front</font></span></h2>
<p>There was an error in TFS 2010 SP1 that set a watermark improperly. Watermarks are used to mark how many work items have been processed into the warehouse, and where to start for the next iteration. Verifying the problem requires running a SQL query against the transactional database. Fixing the problem (also described at the bottom of the post) required executing an update directly against the SQL transactional database. </p>
<p><font color="#ff0000">WARNING: No direct changes to the database are supported by Microsoft. In order to be supported, you should contact Microsoft PSS, and explain the problem, point them to this blog post, let them do their due diligence first, and have THEM recommend running the script!! I am hesitant to even list the fix, and you run it at your OWN RISK!</font></p>
<h2><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d">Table of Contents</font></span></h2>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal">Because this is a relatively large post, I want to provide a quick table of contents to the remainder of the post to help clarify the structure.</p>
<ul>
<li>Troubleshooting Steps
<ul>
<li>Show that problem occurs on any work item changed AFTER SP1 was installed
<li>Highlight two warnings that occurred during SP1 install (Ended up not being related to problem.)
<li>Common, but strange warning in the Event Logs (Ended up not being related to problem.)
<li>Event Logs show both Errors and Warnings that are directly related to problem
<li>Similar Error found on Bing shows corrupted work item from upgrade caused problems.
<li>Other errors caused by permissions or unsolved bugs in TFS, but doesn’t apply since these block ALL processing, not just work items
<li>Rebooting doesn’t help.
<li>Rebuilding the data warehouse / OLAP cube doesn’t help (and it gets stuck in the exact same place each time)</li>
</ul>
<li>Problem Verification
<ul>
<li>SQL Script that identifies that there IS a problem</li>
</ul>
<li>Problem Solution (WARNING: Contact MS PSS before running, since it requires making direct changes against the TFS database!)
<ul>
<li>SQL Script that identifies that resolves the problem</li>
</ul>
</li>
</ul>
<h2>Troubleshooting Steps</h2>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"></font></font></span></p>
<p>The troubleshooting steps are included to walk through much of the thought process I ran through to identify the problem, and to help folks who may be running into a SIMILAR problem, but one that is not exactly the same. Feel free to go to the bottom of the post for the verification and fix steps.</p>
<p><strong>First</strong>, prove that this problem occurred immediately upon install of SP1.</p>
<p>Here’s the strange thing: I can process all data, including all changes to the Work Item store, up until the time that SP1 was installed. So, I can only get data until that point. This shows two columns. First is the number of work items, which becomes frozen as of Sept 22 (the date of the SP1 install), however, you can see that the DATE dimension in the cube goes beyond that. That’s because everything ELSE is processing, just not the work items. Second column shows the work item revision count and it stops as of Sept 22 (the date of the SP1 install).</p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2; mso-no-proof: yes"><a href="http://blog.nwcadence.com/wp-content/uploads/2011/10/clip_image0014.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001[4]" border="0" alt="clip_image001[4]" src="http://blog.nwcadence.com/wp-content/uploads/2011/10/clip_image0014_thumb.png" width="394" height="768"></a></span><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"></span></p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d">&nbsp;</font></font></span></p>
<p><strong>Second</strong>, I examined the logs for the TFS 2010 SP1 install and CU1 install. Everything was clear with the exception of one [WARNING] in each of the installs:</p>
<p>Warning from SP1 install:</p>
<pre class="brush: plain; ruler: true;">[Warning@04:15:02.495] [2011-09-23 02:06:36Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;&nbsp; </pre>
<pre class="brush: plain; ruler: true; collapse: true; highlight: [21];">[Info   @04:15:02.495] [2011-09-23 02:06:35Z] Servicing step Upgrade Version Control database passed. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1VersionControlInstall)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Executing servicing step Tfs2010SP1KB2527572Install SQL servicing step. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1KB2527572Install)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Performer: Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Type:      ExecuteSql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data Text: &lt;SqlStepData category="Framework" resource="KB2527572CollectionInstall.sql" /&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: DatabaseCategory =&gt; Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: SqlResource =&gt; KB2527572CollectionInstall.sql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: BatchTimeout =&gt; -1
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: Parameters =&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: RequiresExclusiveDatabaseLock =&gt; False
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Executing KB2527572CollectionInstall.sql with zero sql parameters.
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Data source: vstssql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Database name: Tfs_DefaultCollection
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_Shelve
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_CreateWorkspace
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_PendAdd
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Warning! The maximum key length is 900 bytes. The index 'PK__#73EC3F1__00FD296475D4878D' has maximum length of 1040 bytes. For some combination of large values, the insert/update operation will fail.
Warning! The maximum key length is 900 bytes. The index 'PK__#77BCCFF__3ECB18DF79A51871' has maximum length of 1041 bytes. For some combination of large values, the insert/update operation will fail.
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_iCheckLockStatus
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Servicing step Tfs2010SP1KB2527572Install SQL servicing step passed. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1KB2527572Install)
[Warning@04:15:02.495] [2011-09-23 02:06:36Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Executing servicing step Add SP1 Test Management Location Data. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1TeamTestInstall)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Performer: Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Type:      AddLocationData
</pre>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Surrounding information in upgrade log (click View Source above)</strong></font></font></span></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2">&nbsp;</span></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal">Warning from the CU1 install (very similar to above):</p>
<pre class="brush: plain; ruler: true;">[Warning@04:22:22.214] [2011-09-23 00:44:15Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
</pre>
<p>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">[Info   @04:22:22.214] [2011-09-23 00:44:14Z] Executing servicing step Patch Collection with PS Sync. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1ProjectServerInstall)
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Performer: Framework
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Type:      ExecuteSql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data Text: &lt;SqlStepData category="Framework" resource="Tfs2010SP1ProjectServerCollectionInstall.sql" requiresExclusiveDatabaseLock="false" /&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: DatabaseCategory =&gt; Framework
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: SqlResource =&gt; Tfs2010SP1ProjectServerCollectionInstall.sql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: BatchTimeout =&gt; -1
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: Parameters =&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: RequiresExclusiveDatabaseLock =&gt; False
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Executing Tfs2010SP1ProjectServerCollectionInstall.sql with zero sql parameters.
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Data source: vstssql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Database name: Tfs_DefaultCollection
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getmapping
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getmappingchanged
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getproperties
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getproperty
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] SQL Info: Creating Procedure prc_sync_savemapping
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] SQL Info: Creating Procedure prc_sync_saveproperty
[Info   @04:22:22.214] [2011-09-23 00:44:15Z] Servicing step Patch Collection with PS Sync passed. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1ProjectServerInstall)
[Warning@04:22:22.214] [2011-09-23 00:44:15Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:15Z] Executing servicing step Add SP1 Test Management Location Data. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1TeamTestInstall)
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] Step Performer: Framework
</pre>
<p><strong>Figure: Surrounding information in upgrade log (click View Source above)</strong></font></font></span></p>
<p><font face="Calibri"><font color="#1f497d"><b style="mso-bidi-font-weight: normal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font style="font-size: 11pt"></font></span></b></font></font>&nbsp;</p>
<p><strong>Third</strong>, here are some of the Application Event Log entries that may indicate an SP1 install failure. <font color="#ff0000">(Ended up NOT to be the case.)</font> </p>
<p>The first is a common error each time TfsAgent throws information, warning, or error messages. You can ignore most of the content of this error log, since it happened when I’d stopped the services anyway. The only critical thing is the highlighted part. This leads me to believe there is something wrong with the SP1 install. (Google / Bing have not been helpful in this scenario, even though there were plenty of hits.)</p>
<pre class="brush: plain; ruler: true;">The description for Event ID 3300 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"></font></span>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 8:59:42 PM
Event ID:      3300
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3300 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:59:42 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 7012
  Thread Id: 1208
  Account name: MyCo\TfsService

Detailed Message: TF221107: Reporting for Team Foundation Server cannot execute job Work Item Tracking Warehouse Sync for team project collection DefaultCollection because the warehouse is offline. Use the Team Foundation Administration Console to start reporting.

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3300&lt;/EventID&gt;
    &lt;Level&gt;3&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T03:59:42.000000000Z" /&gt;
    &lt;EventRecordID&gt;399224&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:59:42 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 7012
  Thread Id: 1208
  Account name: MyCo\TfsService

Detailed Message: TF221107: Reporting for Team Foundation Server cannot execute job Work Item Tracking Warehouse Sync for team project collection DefaultCollection because the warehouse is offline. Use the Team Foundation Administration Console to start reporting.&lt;/Data&gt;
  &lt;/EventData&gt;
  &lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Full Text of Warning (click View Source above)</strong></font></font></span></p>
<p><strong>Fourth</strong>, an Error received when the Work Item Tracking Warehouse Sync runs. This one matters, since it’s the one that represents the failure. <strong>And when it fails, it will NOT stop the TFS Job from running, it will simply hang the job forever.</strong> Interesting thing, though, since the warehouse IS updated to the day that the SP1 was installed, so the cube can get the data up to that point. Notice that the highlighted areas show that it is a SQL Transport level problem. (Quick reminder to everyone that ALL the other Warehouse jobs process successfully, as do the Cube jobs.) It appears as though a network name is no longer available. (Again, recall that the Work Item job can process up to the date that the TFS 2010 SP1 was installed, so it’s not failing immediately, only after processing all the work item events up to that point – we’ve repeatedly rebuilt the warehouse and cube from scratch, and each time it can process up to the date of the SP1 install.) </p>
<pre class="brush: plain; ruler: true;">Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)
</pre>
<p>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 8:27:21 PM
Event ID:      3305
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3305 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:27:21 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 1696
  Thread Id: 1908
  Account name: MyCo\TfsService

Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex, QueryExecutionState queryState)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(SqlException ex)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp; dimensionFieldQueryList, String&amp; measureFieldQueryList, String&amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)

Inner Exception Details:

Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlException)
SQL Exception Class: 20
SQL Exception Number: 64
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 64
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3305&lt;/EventID&gt;
    &lt;Level&gt;2&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T03:27:21.000000000Z" /&gt;
    &lt;EventRecordID&gt;399205&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:27:21 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 1696
  Thread Id: 1908
  Account name: MyCo\TfsService

Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex, QueryExecutionState queryState)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(SqlException ex)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp;amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp;amp; dimensionFieldQueryList, String&amp;amp; measureFieldQueryList, String&amp;amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)

Inner Exception Details:

Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlException)
SQL Exception Class: 20
SQL Exception Number: 64
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 64
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)

&lt;/Data&gt;
  &lt;/EventData&gt;
&lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"><strong>Figure: Entire Error message pertaining directly to the problem (click View Source)</strong></font></span></p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"></font></font></span></p>
<p>Next is a related WARNING in the Application Event Log. It occurs just prior to the ERROR noted above. Notice that it states that a severe error has occurred and the results should not be trusted. It also mentions that the action was cancelled by the user. No HUMAN cancelled it, however, the TFS Job agent may have cancelled it.</p>
<pre class="brush: plain; ruler: true;">Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"></font></span>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 10:51:03 PM
Event ID:      3200
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3200 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 5:51:03 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 4740
  Thread Id: 2492
  Account name: MyCo\TfsService

Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp; dimensionFieldQueryList, String&amp; measureFieldQueryList, String&amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlException)
SQL Exception Class: 11
SQL Exception Number: 0
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):
SQL Error[1]: System.Data.SqlClient.SqlError: Operation cancelled by user.
    Class: 11
    Number: 0
    Server: vstssql
    Source: .Net SqlClient Data Provider
    State: 0
    Procedure:
    Line Number: 0

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 10.00.5500
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 0
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.HasMoreRows()
   at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTable.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTableCollection.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3200&lt;/EventID&gt;
    &lt;Level&gt;3&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T05:51:03.000000000Z" /&gt;
    &lt;EventRecordID&gt;399296&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 5:51:03 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 4740
  Thread Id: 2492
  Account name: MyCo\TfsService

Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp;amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp;amp; dimensionFieldQueryList, String&amp;amp; measureFieldQueryList, String&amp;amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlException)
SQL Exception Class: 11
SQL Exception Number: 0
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):
SQL Error[1]: System.Data.SqlClient.SqlError: Operation cancelled by user.
    Class: 11
    Number: 0
    Server: vstssql
    Source: .Net SqlClient Data Provider
    State: 0
    Procedure:
    Line Number: 0

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 10.00.5500
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 0
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.HasMoreRows()
   at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTable.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTableCollection.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)

&lt;/Data&gt;
  &lt;/EventData&gt;
&lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Full Text of Warning (click View Source above)</strong></font></font></span></p>
<p>
<p><strong>Fifth</strong>, a Google / Bing search reveals only ONE exactly related hit for <strong>TF221122: &#8220;An error occurred running job Work Item Tracking Warehouse&#8221; “A severe error occurred on the current command”</strong> </p>
<p><a href="http://www.go4answers.com/Example/tfs-2010-warehouse-update-severe-148743.aspx">http://www.go4answers.com/Example/tfs-2010-warehouse-update-severe-148743.aspx</a> &#8211; Exactly the same problem, and points to a ROGUE work item that was corrupted during the upgrade from TFS 2008 to TFS 2010. We were good till the update to SP1, so maybe we got corrupted work items there… </p>
<p>Using the SQL at <a href="http://blog.mohammadjalloul.com/blogs/mo/archive/2011/08/29/how-to-detect-corrupted-tfs-work-items.aspx">http://blog.mohammadjalloul.com/blogs/mo/archive/2011/08/29/how-to-detect-corrupted-tfs-work-items.aspx</a> I searched for any corrupted work items. No luck. Query returned no corrupted work items. </p>
<p>So I queried for every work item that was changed on Sept 22 (the date of the last work item update to the warehouse) and I manually reviewed every one of the work items changed that day. I could not find any that had an error that would not permit me to resave them back to TFS, or any other indication anything was wrong. </p>
<p>At this point in the exploration, I did not believe that work item corruption was the problem, or at least the corruption was very hard to spot. </p>
<p><strong>Sixth</strong>, Steven St Jean ran into a similar problem here: <a href="http://sstjean.blogspot.com/2010/07/tfs-2010-rtm-throws-tf221122-error-when.html">http://sstjean.blogspot.com/2010/07/tfs-2010-rtm-throws-tf221122-error-when.html</a> </p>
<p>My situation is different since Analysis Services is already running under a domain account. I could change to NETWORK SERVICE to see if that would help, however, the problem is still different. He had an Analysis Services Network Service account that was failing REPEATABLY, and changing to a domain account worked. And in his case, the ENTIRE processing of the Warehouse was failing. For me, it’s ONLY the work items. </p>
<p><strong>Seventh</strong>, reboot multiple times. Declared this weekend to be open maintenance, and rebooted multiple times after trying various things. No change to the behavior. </p>
<p><strong>Eighth</strong>, delete and rebuild Tfs_Warehouse and Tfs_Analysis multiple times. In each case it will process the work items up to the date and time the SP1 was installed. (I can show that the last work item change prior to SP1 makes it into the warehouse/cube, but that the very next work item change, done after the SP1 was installed, does NOT make it into the warehouse/cube.) </p>
<p><strong>Ninth</strong>, work directly with some of the people at Microsoft DevDiv who built the product. (Ah, the advantages of being an MVP.) This step led to the solution. </p>
<p></font></font></span></p>
<p><h2>Problem Verification</h2>
<p>Once we understood the problem more deeply, this script was run to prove that there was an issue between the two particular tables.&nbsp; It verifies that there is an incorrect change order between the WorkItemsLatest and WorkItemsAre tables.&nbsp; If this SQL query returns any rows, then you have the problem.&nbsp; If not rows are returned, look elsewhere, because the fix script won’t help you.</p>
<pre class="brush: sql; ruler: true;">SELECT COUNT(*)
FROM [dbo].[WorkItemsLatest] L
JOIN [dbo].[WorkItemsAre] A
ON L.[ID] = A.[ID]
AND L.[Rev] = A.[Rev]
WHERE L.[Changed Order] &lt;&gt; A.[Changed Order]</pre>
<h2>Problem Solution</h2>
<p>Below is the SQL Script that solves the problem by setting the valies of the Changed Order columns in the WorkItemsLatest table to the values currently in the WorkItemsAre table.</p>
<p>WARNING: RUN THIS AT YOUR OWN RISK!&nbsp; I HIGHLY recommend you contact Microsoft PSS, and work with them through this issue.&nbsp; This SQL script is provided “for entertainment purposes only”…</p>
<pre class="brush: sql; ruler: true;">SET WL.[Changed Order] = WA.[Changed Order]
FROM dbo.WorkItemsLatest AS WL
JOIN dbo.WorkItemsAre AS WA
ON WL.ID = WA.ID
WHERE WL.[Changed Order] &lt;&gt; WA.[Changed Order]
</pre>
<h2>Conclusion</h2>
<p>I’ve done a large number of TFS 2010 SP1 migrations, and this is the first time I’ve run into this problem.&nbsp; So, don’t let it freak you out.&nbsp; However, if you run into this problem, get PSS on the phone right away, and get this problem solved!&nbsp; (As a side note, I don’t believe you’ll be charged for the call, since it does appear to be a bug in the SP1 upgrade process.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Update (KB2468871) interferes with TFS 2010 (w/o SP1)</title>
		<link>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/</link>
		<comments>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 21:55:06 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[team build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[TFS 2010]]></category>
		<category><![CDATA[Windows Update]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/</guid>
		<description><![CDATA[After installing the latest Windows Update related to .NET 4.0 (KB2468871), Team Builds may begin failing (or simply hanging).&#160; Error logs will show an exception raised that a version of &#8216;System.Runtime.DurableInstancing’ cannot be loaded. Installing TFS 2010 SP1 will solve &#8230; <a href="http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 20px 20px 0px; display: inline; float: left" alt="anti-bugs,anti-insects,beetles,bugs,bugs forbidden sign,cropped images,cropped pictures,forbidden,insects,insects forbidden sign,no bugs,no bugs sign,no insects,no insects sign,PNG,signs,symbols,transparent background" align="left" src="http://officeimg.vo.msecnd.net/en-us/images/MH900441714.jpg" width="226" height="226">After installing the latest Windows Update related to .NET 4.0 (KB2468871), Team Builds may begin failing (or simply hanging).&nbsp; Error logs will show an exception raised that a version of &#8216;System.Runtime.DurableInstancing’ cannot be loaded.</p>
<p>Installing TFS 2010 SP1 will solve the problem. (Also, please install TFS 2010 SP1 CU1 to fix the issues introduced by SP1.)<br />
<hr /> It appears as though KB2468871 (recently pushed through Windows Update) has the potential of breaking TFS 2010 servers without SP1 installed.&nbsp; (See <a href="http://support.microsoft.com/kb/2468871">http://support.microsoft.com/kb/2468871</a> for the details of the patch.)&nbsp; The particular offending part is the update of the .NET 4.0 framework.&nbsp; </p>
<p>After running windows update on your TFS App Tier and your Team Build machines, automated builds will begin to fail or hang.&nbsp; Looking into the event log will show the error below.&nbsp; (Also, see notes below for other ways to test if you have the problem.)</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/DurableInstancingError_FromLog.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DurableInstancingError_FromLog" border="0" alt="DurableInstancingError_FromLog" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/DurableInstancingError_FromLog_thumb.png" width="588" height="536"></a></p>
<p>The exception text reads something like:</p>
<p><font size="1" face="Consolas">Exception Message: Could not load file or assembly &#8216;System.Runtime.DurableInstancing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8242; or one of its dependencies. The located assembly&#8217;s manifest definition does not match the assembly reference. (Exception from HRESULT: 0&#215;80131040) (type BuildServerException)</font></p>
<p><font size="1" face="Consolas">Exception Stack Trace:&nbsp;&nbsp;&nbsp; at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ProcessHttpResponse(HttpWebResponse response, Stream responseStream, WebException webException, XmlReader&amp; xmlResponseReader)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ExecWebServiceRequest(HttpWebRequest request, XmlWriter requestXml, String methodName, HttpWebResponse&amp; response)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Client.AdministrationWebService.TestBuildControllerConnection(Uri controllerUri)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Client.BuildServer.TestConnectionForBuildController(IBuildController controller)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Machine.ControllerService.TestService()</font></p>
<p>Unfortunately, short of rolling back the Windows Update, you’re going to have to either install TFS 2010 SP1 immediately, or work some version re-direction magic in the GAC.&nbsp; This means you’re likely installing SP1 under duress, but there are very limited options.</p>
<p>Don’t forget to install VS 2010 SP1 as well if you have Visual Studio 2010 or Team Explorer 2010 on any of your TFS 2010 or Team Build servers.</p>
<p>You can find downloads here: </p>
<ul>
<li>TFS 2010 SP1 (KB2182621) : <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=20506">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=20506</a></li>
<li>VS 2010 SP1 Web Installer (KB983509) : <a href="http://www.microsoft.com/download/en/details.aspx?id=23691">http://www.microsoft.com/download/en/details.aspx?id=23691</a></li>
<li>TFS 2010 SP1 Cumulative Update 1 (KB2580221) : <a href="http://www.microsoft.com/download/en/details.aspx?id=26211">http://www.microsoft.com/download/en/details.aspx?id=26211</a></li>
</ul>
<p>Your Team Builds will begin running immediately upon installing the TFS 2010 SP1 (and possibly a reboot), however, I really recommend getting everything up to the same versions while your in forced maintenance anyway.</p>
<p>
<hr /> Here’s a few other ways to validate you have the issue:</p>
<p>1) Open up the TFS Administration Console, Select Build Configuration and click Properties on any of the Agents.</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/image_thumb1.png" width="625" height="416"></a></p>
<p>2) In the Build Agent Properties window, click the Test Connection button.&nbsp; If you get the System.Runtime.DurableInstancing error, you have the problem and will need to install TFS 2010 SP1 to correct it.</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/image_thumb3.png" width="550" height="507"></a></p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>When iterative development causes problems</title>
		<link>http://blog.nwcadence.com/2011/09/when-iterative-development-causes-problems/</link>
		<comments>http://blog.nwcadence.com/2011/09/when-iterative-development-causes-problems/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 02:25:40 +0000</pubDate>
		<dc:creator>Jeff Levinson</dc:creator>
				<category><![CDATA[Application Lifecycle Management (ALM)]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/when-iterative-development-causes-problems/</guid>
		<description><![CDATA[I should start off by saying that I’m a big fan of Scrum “but”. Scrum imposes strict limits on a number of areas and absolutely requires a number of things being done. And by not doing them you are setting &#8230; <a href="http://blog.nwcadence.com/2011/09/when-iterative-development-causes-problems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I should start off by saying that I’m a big fan of Scrum “but”. Scrum imposes strict limits on a number of areas and absolutely requires a number of things being done. And by not doing them you are setting yourself up for failure. However, there are problems that Scrum does not address and which are not talked about that much. Things like organizational challenges and internal company politics and just culture in general. After all, Scrum is a process and so it can’t take those items into account. it says, “here is the prescribed way of doing work – do it this way and everything will work, don’t do it this way and you will not succeed.” But Scrum also makes a number of assumptions which are not good. In this post I will walk you through some of the items we faced and how we overcame them.</p>
<p>In a strict world of Scrum you have a Product Backlog and when you begin a sprint you move the items that you are committing to into the Sprint Backlog and then you pull your work from there – almost like a Kanban system but not quite, because the Work In Progress (WIP) limits are at a higher level and in general it tracks work at a higher level than Kanban does as well as several other differences. </p>
<p>The major problem we continuously run into is the complexity of the network and the hardware involved in the work that we do. To add to the complexity is the fact that different teams (which we have no influence over) take longer to do work than we do and they are governed by a strict set of Service Level Agreements (SLA) which you will often find in large companies where some of the core work, such as server maintenance or data center maintenance, is subcontracted.</p>
<p>Scrum, combined with the team size gave us the perfect ability to hide our problems which was not a good thing. What would happen is that teams would run into a problem in, say, the development environment and set things in motion to solve the problem (opened a ticket with the server team) and would then move on to the QA environment. The problem would occur in the QA environment and then move to the Pre-Prod environment – all the while this problem still occurred. But because the team kept pulling items from their queue to work on, they were “busy” all of the time and reporting good progress – but not actually completing anything.</p>
<p><font color="#0000ff"><em>I should note that some of the user stories were straight technical stories – software being installed for instance to get various environments up and running.</em></font></p>
<p>The problem here was two-fold. The first is that the way the user stories were constructed, installing software and moving code from Dev to QA to Pre-Prod were all part of a single user story – it was just different parts of the requirement and Scrum doesn’t track down at the task level. The second part is that the “in progress” bucket can be huge – it is up to the practitioner to break the story down into a manageable level. So lo and behold we were building up a huge amount of technical debt that turned out to be fatal for this iteration. What happened versus what should have happened?</p>
<h1></h1>
<h1>What happened?</h1>
<p>First a team of 15+ people is too big for a 15 minute standup each morning. 15 people x approximately 3 minutes each = 45 minutes. That’s a bit outside of 15 minutes and our team is actually larger than 15 people. So what did we do?</p>
<h2>Mistake #1</h2>
<p>We eliminated the 15 minute standup meetings in favor of a once weekly team meeting.</p>
<p>There were other forces involved in this decision – at any large company there are going to be a lot of meetings and the team was suffering from “meeting fatigue”. As the Scrum Master I didn’t want to add to it and I couldn’t figure out how to keep the meetings to 15 minutes regardless. This, of course, led to the second problem.</p>
<h2>Mistake #2</h2>
<p>In a larger team meeting, people are concerned that they will be looked on negatively if they keep reporting problems. So they don’t – or they under-report the magnitude of the problem.</p>
<p>Our iterations are one month long. This took me two months of looking back at the data to realize. Once I figured it out, I committed mistake #3.</p>
<h2>Mistake #3</h2>
<p>Private conversations regarding the problems people are experiencing do not allow the team to focus their energies on the problem at hand – it becomes an individual firefighting experience.</p>
<p>We have a lot of very talented people on our team. By having one on one meetings with individuals who were having problems I was getting right back into the problem that mistake #1 was designed to solve – the number of meetings skyrocketed as I had to deal with a whole bunch of problems one on one. In addition, I wasn’t able to bring the knowledge of the entire team to bear on a problem – I had to schedule more meetings to do investigation instead of just having everyone pitch in at once.</p>
<p>To be honest, some problems – specifically those that rely on external forces – can only be solved by escalation to management. And this lead to Mistake #4.</p>
<h2>Mistake #4</h2>
<p>I didn’t recognize the negative impact of the groups culture – which is, they were not rewarded for bringing problems to light. The team members felt management didn’t care – that they just wanted the problem solved but they didn’t want to know about it.</p>
<p>I am not management – I never will be. But because of my role team members felt that reporting problems to me was the same as reporting them to management. Which they were highly reluctant to do. This lead to Mistake #5.</p>
<h2>Mistake #5</h2>
<p>The team members had enough work in their queue that they could simply move on to something else. By not updating their status correctly I had no visibility of this.</p>
<p>What they essentially did was to try to handle the problem on their own, reported that everything was okay and on track when in fact that was far from the truth. They kept hoping that things would come back on track which they never did because no effective intervention ever took place. This effectively let us hide waste. There was one more problem that came out of all of this.</p>
<h2>Mistake #6</h2>
<p>We didn’t recognize quickly enough that the handoffs between team members were difficult and not working well at all.</p>
<p>In Scrum, one person is generally responsible for a user story from beginning to end – there is a concept of ownership. We tried to do that – as the Scrum Master I had the ownership. Why not a Product Owner you might ask. Good question – the team was reporting to five product owners at the same time with approximately 8 different statements of work per month. We are a core solutions team so we provide many different solutions for different customers on the same infrastructure. The reason for individual team members not taking ownership is because there were many coordination’s that had to occur to get a single piece of work done because of the specialized skillsets required to get the work done (we recognize the need to grow the skillsets but that can’t be done overnight). Essentially there was no coordination or collaboration in the handoffs of work or even the scheduling for when work would be done.</p>
<p>Those are the big six mistakes that I feel, in retrospect, that I made as a scrum master with this particular team. So, what did we do about it and how did it work? I can’t tell you how it worked because this is a work in progress and this is the first month we are doing this but I’ll post back with a follow up.</p>
<h1>Countermeasures we put in place</h1>
<h2>Solution #1 &#8211; Implement a Scrum of Scrums</h2>
<p>The immediate step was to appoint two additional Scrum Masters and “break” the team up into three autonomous teams (that is, each team is self contained – the mix of resources is such that each team has someone with the specialized skills needed to work a particular technology or type of solution).</p>
<p>This was done so that the Scrum Masters could more effectively deal with problems since they were only overseeing a small number of team members. And oversee is too strong a word, the Scrum Masters did perform some work as well. This freed up my time to do some more work since I was now the Scrum Master for only 6 people (including myself). This immediately led to another quick solution…</p>
<h2>Solution #2 – Reinstated the daily stand-ups</h2>
<p>The smaller teams allowed each Scrum Master the ability to hold daily standups that actually last only 15 minutes.</p>
<p>The standups are four days a week plus one team meeting that lasts one hour. The Scrum Masters also have a once a week coordination standup meeting. We ask the same three questions but reserve the right to extend the meeting to coordinate resources to meet special demands.</p>
<h2>Solution #3 – A “true” Kanban approach</h2>
<p>Individuals are assigned only one requirement at a time – the other requirements are held in an iteration backlog and are assigned to the generic resource of “Product Manager”. We do not discuss these items with the team members at all during our iteration planning meeting.</p>
<p>This had a whole bunch of ramifications. The first is that we would not commit to a full iterations worth of work – we created a monthly “roadmap” which said, “these are our goals for the month which we will try to reach”. The upside to this approach is that our iteration planning meetings went from 7 hours to 2 hours. Nice. The downside to this approach is that our team is currently really unable to make a commitment and stick to it. We had not been doing it for the last year so this is really no change from the status quo but it leads to another benefit:</p>
<p>When a problem is encountered it is surfaced and dealt with in a 24 hour period. What do I mean by this? Well, since team members are only allowed to work on one item at a time (a WIP limit of 1 as it were) when something goes wrong and they cannot fix it themselves we (the Scrum Masters) either find out about it in the next standup meeting or the team member contacts the Scrum Master as soon as the problem is recognized and it can be elevated to management ASAP. Work halts until the problem is solved. We then capture the resolution to these issues and turn around and drive them back into the process.</p>
<p><font color="#0000ff">Note that this is a work in progress and we’re still working out how to best drive the problem resolution back into the process so we avoid the problem in the future.</font></p>
<p>In addition, this alleviates some of the management role that I was playing because if team members do not escalate problems, they have to explain to their management why they were working on one tiny item with an estimate of 8 hours for a week. It also allows Scrum Masters, through empirical observation to detect problems earlier.</p>
<p><font color="#0000ff">Did I mention that our entire team is virtual and spread out all over the US?</font></p>
<h2>Solution #4 – Reward problems discovered</h2>
<p>The last item is to celebrate when a problem is found – the earlier the better. </p>
<p>We are using TFS for our work and created a special area for internally created issues. We encourage team members to report issues with the process as they find them. We review these issues each iteration and take one to improve upon as part of our work structure. It remains to be seen how effective this will be but it’s a start.</p>
<h1>Conclusion</h1>
<p>I debated whether or not to share this experience and in the end decided that there must be other teams running into these problems. I’ve been doing this for 5 years now (stricter focus on process and methodology that is) and I knew all about these problems and yet I let the politics of the organization suck me right back into things that I have coached other teams for years on how to avoid. Talk about feeling dumb. </p>
<p>And I had tried other things along the way but kept running into the same problems because I could not trust the team to do things in the way they needed to be done. While I still have that problem, I was also part of the problem because I was not explicit enough in explaining to the team why we needed things done.</p>
<p>Hopefully, this post will help other people who might be in the same situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/when-iterative-development-causes-problems/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Constructing the iteration path in TFS</title>
		<link>http://blog.nwcadence.com/2011/07/constructing-the-iteration-path-in-tfs/</link>
		<comments>http://blog.nwcadence.com/2011/07/constructing-the-iteration-path-in-tfs/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 17:12:26 +0000</pubDate>
		<dc:creator>Jeff Levinson</dc:creator>
				<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Visual Studio 2010 Team Foundation Server]]></category>
		<category><![CDATA[Visual Studio ALM]]></category>
		<category><![CDATA[TFS Databases]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/07/constructing-the-iteration-path-in-tfs/</guid>
		<description><![CDATA[I had a situation where I had to go directly into the database and determine the work items that fell into a certain category and where they showed up on my long range plan (which iteration). It turns out that &#8230; <a href="http://blog.nwcadence.com/2011/07/constructing-the-iteration-path-in-tfs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I had a situation where I had to go directly into the database and determine the work items that fell into a certain category and where they showed up on my long range plan (which iteration). It turns out that the iteration path isn’t easily accessible directly in the database. There are a number of places you can look, but none are particularly satisfactory. </p>
<p>The various tables are TreeIDPairs, TreeNodes, xxTree and the views are TreePairs, TreePathParts, TreesAreUsed and TreesWereUsed. All of these views and tables have problems with them in one way or another. For example, the TreePairs view has columns called Name (all values are a ‘\’) and AboveID (all values are ‘0’) – not very useful. The TreesAreUsed contains the full Area Path but no Iteration Path. The xxTree has both but I preferred to not rely on that table (anything with an ‘xx’ to start the table name tells me it either is, or may be, deprecated). So I wrote my own query which I thought might be helpful to others.</p>
<pre class="brush: sql; ruler: true;">WITH FullIterationPath (ID, ParentID, Name, tlevel, hierarchy)
AS
(
    --Anchor definition
    SELECT    a.ID,
            a.ParentID,
            a.Name,
            0 as tlevel,
            a.Name as hierarchy
    FROM    TreeNodes a
    WHERE    ID = 439    --FEC Solution-Products Root
    UNION ALL
    --Recursive definition
    SELECT    a.ID,
            a.ParentID,
            a.Name,
            tlevel + 1 as tlevel,
            cast(hierarchy + '\' + a.Name as nvarchar(255)) as hierarchy
    FROM    TreeNodes a
    JOIN    FullIterationPath b ON b.ID = a.ParentID
)

SELECT    ID,
        ParentID,
        Name,
        tlevel,
        hierarchy
FROM    FullIterationPath
</pre>
<p>&nbsp;</p>
<p>You can also use this to construct the area path as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/07/constructing-the-iteration-path-in-tfs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Publishing samples with Team Build and TFS 2010</title>
		<link>http://blog.nwcadence.com/2011/05/publishing-samples-with-team-build-and-tfs-2010/</link>
		<comments>http://blog.nwcadence.com/2011/05/publishing-samples-with-team-build-and-tfs-2010/#comments</comments>
		<pubDate>Wed, 18 May 2011 05:58:37 +0000</pubDate>
		<dc:creator>Steve2</dc:creator>
				<category><![CDATA[Publishing]]></category>
		<category><![CDATA[team build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://seesharper.wordpress.com/?p=705</guid>
		<description><![CDATA[It’s common when writing an API to publish a set of samples. This is a great way to give users an idea of the intended usages of your API. Now samples that are intended for publishing are essentially another production application you need to develop, and therefore should go through the same quality checks and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seesharper.wordpress.com&#38;blog=3535352&#38;post=705&#38;subd=seesharper&#38;ref=&#38;feed=1" width="1" height="1" /> <a href="http://blog.nwcadence.com/2011/05/publishing-samples-with-team-build-and-tfs-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It’s common when writing an API to publish a set of samples. This is a great way to give users an idea of the intended usages of your API. Now samples that are intended for publishing are essentially another production application you need to develop, and therefore should go through the same quality checks and processes that the rest of your code does, including version control.</p>
<p>This can raise a couple of challenges once you start to look at how you publish these samples. The issue is that a server based system will need some way to track the client side changes and with most popular version control systems this will involve the presence of extra files around the samples directories. As a consumer of the samples, the presence of these files in the published artefacts is far from ideal. I really don’t want to have the samples trying to connect to your remote server, or even a local instance of a version control provider I might not have installed.</p>
<p>So how do we break the dependency on the source control provider during the packaging of these samples for publishing? We could manually go through and delete all of the binding mechanisms, but that would expose us to the following types of waste:</p>
<ul>
<li>Defects – manual processes are more prone to defects</li>
<li>Waiting – builds need to wait on the samples to be prepared for packaging</li>
<li>Extra Processing – extra steps to make our packaging pick up our manually cleansed samples</li>
</ul>
<p>We can avoid most of this waste by automating the process. So if it’s able to be automated, how do we do it?</p>
<h3>Prerequisites</h3>
<p>
Download the following script <a href="https://gist.github.com/967976">https://gist.github.com/967976</a>. This script is written originally by <a href="http://damianm.com/" >Damian Maclennan</a>, and essentially removes the TFS source binding files, solution and project elements that reference the TFS instance.  My fork includes the ability to decide on if you want the files backed up before removal of the version control sections. I usually choose not to, I don’t want the backup files in the output and have the actual versions in version control if I need them. In addition you may want to do the following:
</p>
<ul>
<li>Create a batch file wrapper for the script using the approach defined by <a href="http://codeassassin.com" >Jason Stangroome</a> at <a href="http://bit.ly/kmyfY2">http://bit.ly/kmyfY2</a></li>
<li>Commit the script to a path in your repository that is part of your build workspace with the same name as the PowerShell script</li>
</ul>
<h3>First Step: Create a custom build template</h3>
<ul>
<li>Setup a build to create your packages, and when you get to choosing the process template clone the default template into a new template</li>
<li>Check the new template into source control</li>
</ul>
<h3>Second Step: Set up a folder to publish to</h3>
<ul>
<li>Open your cloned template and navigate to the point at which MSBuild is invoked with the &#8216;Build&#8217; target</li>
<li>Drop in a new sequence activity and name it ‘Publish Samples’</li>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/publish-samples-location.png"><img class="aligncenter size-full wp-image-707" title="Publish Samples Location" src="http://seesharper.files.wordpress.com/2011/05/publish-samples-location.png?w=575&#038;h=474" alt="" width="575" height="474" /></a></p>
<ul>
<li>Create an argument named ‘SampleDropFolder’.</li>
<ul>
<li>This will be the configurable name for the folder placed in the output directory with our samples inside.</li>
<li>We’ll talk about how to surface this on the build configuration dialogue later.</li>
</ul>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/sampledropfolder-argument.png"><img class="aligncenter size-full wp-image-708" title="Sample Drop Folder argument" src="http://seesharper.files.wordpress.com/2011/05/sampledropfolder-argument.png?w=575&#038;h=45" alt="" width="575" height="45" /></a></p>
<ul>
<li> Create a variable to hold the full path to the output folder.</li>
<ul>
<li>I&#8217;ve named mine ‘SamplesDropFolder’ but that may be a bit close to the argument name for you.</li>
<li>I also default this to a combination of the outputDirectory variable specified in the scope of the Compile and Test activity and the SampleDropFolder argument we’ve specified previously.</li>
</ul>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/samples.png"><img class="aligncenter size-full wp-image-710" title="Samples" src="http://seesharper.files.wordpress.com/2011/05/samples.png?w=575&#038;h=19" alt="" width="575" height="19" /></a></p>
<ul>
<li>Open up your ‘Publish Samples’ sequence activity and drop in a ‘Create Directory’ activity.</li>
<ul>
<li>Configure it with the ‘SamplesDropFolder’ variable we set up in the last step.</li>
<li>This will set up a root directory we can copy all our samples to, and makes it easy to run our binding removal script later on.</li>
</ul>
</ul>
<h3>Third Step: Copy the samples</h3>
<p>Now we’ve got our directory, we need to work out what we want to put in it. In most cases, we&#8217;ll have more than a single set of folders to move, so we need to put some smarts around how we identify our targets.</p>
<ul>
<li>First create an Argument called ‘Samples’ and configure it to be of the type String[].</li>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/samples-argument.png"><img class="aligncenter size-full wp-image-709" title="Samples Argument" src="http://seesharper.files.wordpress.com/2011/05/samples-argument.png?w=575&#038;h=26" alt="" width="575" height="26" /></a></p>
<ul>
<li>Drop a ForEach activity into the &#8216;Publish Samples&#8217; sequence and configure it to iterate over our Samples argument we just created.</li>
<li>Add a variable to contain the local path of the sample directory we’re currently working with as a string with the name ‘sampleLocalPath’</li>
<li>Inside the ForEach activity drop a ‘ConvertWorkspaceItem’ activity. This will take our server paths and work out the local path for the directories for us. You’ll need to configure it as follows:</li>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/convert-workspace-item-configuration.png"><img class="size-full wp-image-714 aligncenter" title="Convert Workspace Item Configuration" src="http://seesharper.files.wordpress.com/2011/05/convert-workspace-item-configuration.png?w=477&#038;h=207" alt="" width="477" height="207" /></a></p>
<ul>
<li>Drop in a ‘CopyDirectory’ activity to copy our sample directory from the source to the output directory.  Your ForEach should now look something like this:</li>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/for-each-configuration.png"><img class="aligncenter size-full wp-image-717" title="For Each Configuration" src="http://seesharper.files.wordpress.com/2011/05/for-each-configuration.png?w=307&#038;h=328" alt="" width="307" height="328" /></a></p>
<h3>Fourth Step: Remove the source control bindings</h3>
<p>Now we&#8217;ve got our samples into the target directory, we need to strip out the source control bindings so our customers don&#8217;t try to connect to our server when they open the solutions.</p>
<ul>
<li>Add an Argument to specify the server path to the batch file we checked in back at the start of the process.</li>
</ul>
<p><a href="http://seesharper.files.wordpress.com/2011/05/binding-removal-script-path.png"><img class="aligncenter size-full wp-image-718" title="Binding removal script path" src="http://seesharper.files.wordpress.com/2011/05/binding-removal-script-path.png?w=575&#038;h=20" alt="" width="575" height="20" /></a></p>
<ul>
<li>Create a variable to house the local path of our binding removal script. I’ve named mine ‘SourceControlRemovalScriptLocalPath’</li>
<li>Drop in another ‘ConvertWorkspaceItem’ activity after your ForEach activity. This will be used to convert the argument we just created with the server path to our source binding stripping script to its local path.  It should be configured like this:</li>
</ul>
<div id="attachment_719" class="wp-caption aligncenter" style="width: 482px"><a href="http://seesharper.files.wordpress.com/2011/05/convert-binding-stripper-path-configuration.png"><img class="size-full wp-image-719" title="Convert Binding Strip Script Path Configuration" src="http://seesharper.files.wordpress.com/2011/05/convert-binding-stripper-path-configuration.png?w=472&#038;h=204" alt="" width="472" height="204" /></a>
<p class="wp-caption-text">Note: While the variables look like they are the same item, they aren&#039;t I promise!</p>
</div>
<ul>
<li>Drop in an ‘InvokeProcess’ activity after the ‘ConvertWorkspaceItem’ you just added.  A little care is required when configuring this activity to ensure we get a reliable execution, so I’ll list out how I’ve configured each property.</li>
</ul>
<blockquote><p>Arguments: <em>Microsoft.VisualBasic.Chr(34) + SamplesDropPath + Microsoft.VisualBasic.Chr(34)</em></p>
<p>Display Name: <em>Strip Source Control Bindings</em></p>
<p>File Name: <em>Microsoft.VisualBasic.Chr(34) + SourceControlRemovalScriptLocalPath + Microsoft.VisualBasic.Chr(34)</em></p>
<p>Working Directory: <em>BinariesDirectory</em></p>
<p><em>Any other properties remain unaltered from their default state</em></p>
</blockquote>
<p>Your publish samples sequence activity should now look a little like this</p>
<p><a href="http://seesharper.files.wordpress.com/2011/05/publish-samples-completed.png"><img class="aligncenter size-full wp-image-721" title="Completed Publish Samples " src="http://seesharper.files.wordpress.com/2011/05/publish-samples-completed.png?w=234&#038;h=404" alt="" width="234" height="404" /></a></p>
<h3>Fifth Step: Surface the arguments</h3>
<p>That’s nearly everything we need to do to support the publishing of samples into our output directory. However we’ve set up a few arguments in here to ensure our template is re-usable. We now need to surface them to users via the build configuration dialog. To do this:</p>
<ul>
<li>On the ‘Metadata’ Argument for the build workflow click the ellipsis. You should get a pop up dialog</li>
<li>Configure the three arguments we’ve added as follows</li>
<ul>
<li>The samples list</li>
<li>The samples drop folder name</li>
<li>The source control removal script path</li>
<li>These should be configured in the editor as follows:</li>
</ul>
</ul>
<div id="attachment_722" class="wp-caption aligncenter" style="width: 395px"><a href="http://seesharper.files.wordpress.com/2011/05/parameter-metadata-editor.png"><img class="size-full wp-image-722" title="Parameter Metadata Editor" src="http://seesharper.files.wordpress.com/2011/05/parameter-metadata-editor.png?w=385&#038;h=456" alt="" width="385" height="456" /></a>
<p class="wp-caption-text">The only thing that changes across the parameters are the Display Name &#8211; the name we surface to the editor, and the Parameter Name – the name we gave our argument that corresponds to this parameter</p>
</div>
<ul>
<li>Check in the template</li>
</ul>
<h3>Final Steps: Configure the build!</h3>
<p>
Now we’ve got our template done, let’s go configure a build! The only real point of interest here are the custom parameters we set up on our way through, so we’ll focus on them – this is a long enough read already!</p>
<p>The points of interest are all on the process tab, so let’s skip there. If you expand your custom section you should see something like this:</p>
<p><a href="http://seesharper.files.wordpress.com/2011/05/build-configuration-default.png"><img class="aligncenter size-full wp-image-723" title="Build Configuration Default" src="http://seesharper.files.wordpress.com/2011/05/build-configuration-default.png?w=575&#038;h=199" alt="" width="575" height="199" /></a></p>
<p>All you need to do is fill in the values, so it looks more like this:</p>
<p><a href="http://seesharper.files.wordpress.com/2011/05/build-configuration-configured.png"><img class="aligncenter size-full wp-image-724" title="Build Configuration Configured" src="http://seesharper.files.wordpress.com/2011/05/build-configuration-configured.png?w=575&#038;h=249" alt="" width="575" height="249" /></a></p>
<p>Once that’s done, kick off a build and you should be able to locate your samples, without the binding configuration in the drop directory of your build output!
</p>
<h3>Conclusion</h3>
<p>In this article I&#8217;ve shown you how to create a reusable template for including useful samples in your build output. I&#8217;ve used this particular approach with a few customers and what I particularly like about it is we aren&#8217;t moving too far from the out of the box activity set that comes with Team Build. This saves us on overhead, and allows the template to be put together pretty quickly.</p>
<p> Tagged: <a href='http://seesharper.wordpress.com/tag/publishing/'>Publishing</a>, <a href='http://seesharper.wordpress.com/tag/team-build/'>Team Build</a>, <a href='http://seesharper.wordpress.com/tag/tfs/'>TFS</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seesharper.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seesharper.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seesharper.wordpress.com/705/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seesharper.wordpress.com&amp;blog=3535352&amp;post=705&amp;subd=seesharper&amp;ref=&amp;feed=1" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/05/publishing-samples-with-team-build-and-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://0.gravatar.com/avatar/07e3abc991f577fd6c5c27ffff779fde?s=96&amp;amp;d=http://0.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=96&amp;amp;r=G" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/publish-samples-location.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/sampledropfolder-argument.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/samples.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/samples-argument.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/convert-workspace-item-configuration.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/for-each-configuration.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/binding-removal-script-path.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/convert-binding-stripper-path-configuration.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/publish-samples-completed.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/parameter-metadata-editor.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/build-configuration-default.png" length="" type="" />
<enclosure url="http://seesharper.files.wordpress.com/2011/05/build-configuration-configured.png" length="" type="" />
		</item>
		<item>
		<title>TFS SP1 and Lab Management&#8211;wait for the QFE &#8211; FIXED</title>
		<link>http://blog.nwcadence.com/2011/04/tfs-sp1-and-lab-managementwait-for-the-qfe/</link>
		<comments>http://blog.nwcadence.com/2011/04/tfs-sp1-and-lab-managementwait-for-the-qfe/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 15:25:11 +0000</pubDate>
		<dc:creator>Jeff Levinson</dc:creator>
				<category><![CDATA[Coded UI]]></category>
		<category><![CDATA[Microsoft Test Manager]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[SP1]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Visual Studio Lab Management]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[QFE]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/04/tfs-sp1-and-lab-managementwait-for-the-qfe/</guid>
		<description><![CDATA[&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- Update: Microsoft released a QFE to address the issue outlined below. Here is a summary of the list of issues fixed by the QFE, to help you decide whether you should apply the QFE: Issue 1: When you run &#8230; <a href="http://blog.nwcadence.com/2011/04/tfs-sp1-and-lab-managementwait-for-the-qfe/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><font color="#000000">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</font></p>
<p><font color="#ff0000">Update:</font> Microsoft released a QFE to address the issue outlined below.</p>
<p>Here is a summary of the list of issues fixed by the QFE, to help you decide whether you should apply the QFE:
<p><b>Issue 1: </b>When you run tests on the test agent that is installed on a computer that has Visual Studio 2010 SP1 installed, the tests may not run, and the following error message is logged:
<p>Attempted to access an unloaded AppDomain. (Exception from HRESULT: 0&#215;80131014)
<p><b></b>
<p><b>Issue 2: </b>When you run a playback of a Coded UI Test on certain Windows Presentation Foundation (WPF) controls, a <b>Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException</b> exception occurs, and then you receive the following error message:
<p>&#8220;Search may have failed at &#8216;<i>&lt;name&gt;</i>&#8216; <i>&lt;control type&gt;</i> as it may have virtualized children. If the control being searched is descendant of &#8216;<i>&lt;name&gt;</i>&#8216; <i>&lt;control type&gt;</i> then including it as the parent container may solve the problem.&#8221;
<p><b>Issue 3: </b>When you try to create a work item from the <b>Test Results</b> pane in Visual Studio 2010 after you connect to a Team Foundation Server (TFS) server, a <b>System.OutOfMemory</b> exception occurs, and the creation operation fails. This issue usually occurs if the TFS server has many builds.<br /><b></b>
<p><b>Issue 4: </b>When some tests run in a build operation, some builds that are queued in a TFS server stop responding. Additionally, the following error message is logged in the build log:
<p>Waiting to publish&#8230;<br />Publishing results of test run <i>&lt;build name&gt;</i> to http://<i>&lt;TFS server address&gt;</i>:8080/tfs/DefaultCollection&#8230;<br />The process cannot access the file &#8216;<i>&lt;directory&gt;</i>\data.coverage&#8217; because it is being used by another process.<br />Publish failed or canceled.
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
<p>As I was preparing for a demo of lab management the other day I did what we tell all of our customers to do – patch everything to latest service packs which of course included TFS SP1 on all of our machines. That includes the TFS server and all build servers and virtual lab environments.</p>
<p>By the way, using the lab prep tool you must manually install SP1 after the VM is prepped otherwise you get a few errors. But I digress.</p>
<p>After I patched everything I ran a test to verify that everything worked. I created a manual test, recorded it and turned it into a CodedUI test with validations. All went smoothly. Then I ran a lab build and got a failure. Looking at the automated test run (MTM &gt; Testing Center &gt; Test &gt; Analyze Test Runs I noticed the following log:</p>
<table border="1" cellspacing="0" cellpadding="0" width="1815">
<tbody>
<tr>
<td valign="top" width="10"><font size="2">ID</font></td>
<td valign="top" width="525"><font size="2">Date &amp; Time</font></td>
<td valign="top" width="1278"><font size="2">Message</font></td>
</tr>
<tr>
<td valign="top" width="10">1</td>
<td valign="top" width="525">04/06/2011 21:06:06</td>
<td valign="top" width="1278">Preparing to execute test run [17].</td>
</tr>
<tr>
<td valign="top" width="10">2</td>
<td valign="top" width="525">04/06/2011 21:06:06</td>
<td valign="top" width="1278">Test run is executed by Process: &#8216;QTController&#8217;, User: xxxx, Controller: xxxx, Environment: &#8216;LabDemo.All Hosts_Demo.Test Env&#8217;.</td>
</tr>
<tr>
<td valign="top" width="10">3 </td>
<td valign="top" width="525">04/06/2011 21:06:06 </td>
<td valign="top" width="1278">Loading the test settings for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">4</td>
<td valign="top" width="525">04/06/2011 21:06:06 </td>
<td valign="top" width="1278">Adding test case [26] to test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">5 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Executing the initializing plugin for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">6 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Changing the test run state from &#8216;Initializing&#8217; to &#8216;In Progress&#8217;. </td>
</tr>
<tr>
<td valign="top" width="10">7 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Executing test run starting plugin for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">8 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Starting test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">9 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Created a TMI run with ID [20507d65-c49b-442f-bb56-47c8fff0bc37] for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">10 </td>
<td valign="top" width="525">04/06/2011 21:06:07 </td>
<td valign="top" width="1278">Queued the TMI run for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">11 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Updating the result of test case [26]. </td>
</tr>
<tr>
<td valign="top" width="10">12 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">The test results are saved successfully. </td>
</tr>
<tr>
<td valign="top" width="10">13 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Executing the test run completed plugin for test run [17]. </td>
</tr>
<tr>
<td valign="top" width="10">14 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Test run [17] completed. </td>
</tr>
<tr>
<td valign="top" width="10">15 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">The execution log reported by TMI for test run [17]: </td>
</tr>
<tr>
<td valign="top" width="10">16 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Timestamp &#8217;4/7/2011 4:06:08 AM&#8217;; TestOutcome &#8216;Error&#8217;; Message &#8216;Attempted to access an unloaded appdomain. (Exception from HRESULT: 0&#215;80131014)&#8217;.</td>
</tr>
<tr>
<td valign="top" width="10">17 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Timestamp &#8217;4/7/2011 4:06:08 AM&#8217;; TestOutcome &#8216;Warning&#8217;; Message &#8216;Test run xxxx 2011-04-06 21:06:07&#8242; could not be executed on controller xxxx. The test run was stopped or aborted while waiting for diagnostic data adapters to initialize.&#8217;. </td>
</tr>
<tr>
<td valign="top" width="10">18 </td>
<td valign="top" width="525">04/06/2011 21:06:09 </td>
<td valign="top" width="1278">Timestamp &#8217;4/7/2011 4:06:09 AM&#8217;; TestOutcome &#8216;Error&#8217;; Message &#8216;Attempted to access an unloaded appdomain. (Exception from HRESULT: 0&#215;80131014)&#8217;.</td>
</tr>
</tbody>
</table>
<p>You will note the last three items. Even though the test log shows that the test executed successfully, it did not. If you remove the diagnostic data adapters, the error on line 17 will be removed but the errors on 16 and 18 continue.</p>
<p>It turns out that when SP1 was released, it caused a problem with the test agent running in the lab environment. A simple solution for my needs was to uninstall SP1 from the machines in the lab environment and everything ran fine again – or so I thought. However, when you do this, IntelliTrace does not work because of the mismatch between the external test controller (patched to SP1) and the internal test agent (RTM). Or so I believe right now.</p>
<p>Microsoft has confirmed this to be a problem and they are actively working on a QFE for this. I will drop another post once this QFE is released.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/04/tfs-sp1-and-lab-managementwait-for-the-qfe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Screenshot on Test Failure</title>
		<link>http://blog.nwcadence.com/2011/03/screenshot-on-test-failure/</link>
		<comments>http://blog.nwcadence.com/2011/03/screenshot-on-test-failure/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 15:23:08 +0000</pubDate>
		<dc:creator>Jeff Levinson</dc:creator>
				<category><![CDATA[Coded UI]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Screen capture]]></category>
		<category><![CDATA[Test Failure]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/?p=274</guid>
		<description><![CDATA[Neeraja Reddy from the testing team at Microsoft just provided a pretty cool code snippet to perform a screencapture &#8211; programmatically of a failed test: ﻿﻿﻿[TestCleanup()] public void MyTestCleanup() {     if (TestContext.CurrentTestOutcome == UnitTestOutcome.Failed)     {         Image img &#8230; <a href="http://blog.nwcadence.com/2011/03/screenshot-on-test-failure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Neeraja Reddy from the testing team at Microsoft just provided a pretty cool code snippet to perform a screencapture &#8211; programmatically of a failed test:</p>
<p><code>﻿﻿﻿[TestCleanup()]<br />
public void MyTestCleanup()<br />
{<br />
    if (TestContext.CurrentTestOutcome == UnitTestOutcome.Failed)<br />
    {<br />
        Image img = UITestControl.Desktop.CaptureImage();<br />
        img.Save(Path.Combine(TestContext.TestResultsDirectory, "FailureSnapshot.png"));<br />
    }<br />
}</code></p>
<p><code>By placing this code in the TestCleanup method, whenever a test fails, the last screen of the test will be captured and saved in the test results directory which will automatically be captured at the end of the test run.</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/03/screenshot-on-test-failure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Make the move to Visual Studio Team Foundation Server 2010</title>
		<link>http://blog.nwcadence.com/2011/02/make-the-move-to-visual-studio-team-foundation-server-2010/</link>
		<comments>http://blog.nwcadence.com/2011/02/make-the-move-to-visual-studio-team-foundation-server-2010/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 21:31:42 +0000</pubDate>
		<dc:creator>Amanda</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Northwest Cadence]]></category>
		<category><![CDATA[Rennie Araucto]]></category>
		<category><![CDATA[Steven Borg]]></category>
		<category><![CDATA[Visual Source Safe]]></category>
		<category><![CDATA[VSS to TFS]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/?p=241</guid>
		<description><![CDATA[Do you have Visual SourceSafe?  Are you looking to migrate to Visual Studio Team Foundation Server? Microsoft recently launched a great site that provides all the tools and information to help you upgrade from Visual SourceSafe to Team Foundation Server &#8230; <a href="http://blog.nwcadence.com/2011/02/make-the-move-to-visual-studio-team-foundation-server-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Verdana; font-size: x-small;">Do you have Visual SourceSafe?  </span><span style="font-family: Verdana; font-size: x-small;">Are you looking to migrate to Visual Studio Team Foundation Server?</span></p>
<p><span style="font-family: Verdana; font-size: x-small;">Microsoft recently launched a great site that provides all the tools and information to help you upgrade from Visual SourceSafe to Team Foundation Server right now. </span><span style="font-family: Verdana; font-size: x-small;">Visit <span><a href="http://www.microsoft.com/visualsourcesafe"><span style="font-family: 'Calibri','sans-serif'; font-size: 11pt;">www.microsoft.com/visualsourcesafe</span></a></span> to access these tools. </span></p>
<p><span style="font-family: Verdana; font-size: x-small;">We are pleased to be a part of this resource site. <span style="font-family: Verdana; font-size: x-small;">Our very own Steven Borg and Rennie Araucto are featured in the videos which explain both <strong><span style="color: #000080;">Why</span></strong> and <strong><span style="color: #000080;">How</span></strong> to migrate from VSS to TFS. <span> <span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-size: x-small;">The site also features a very informative WhitePaper<em>, &#8220;Upgrading from Visual SourceSafe to Team Foundation Server&#8221;,</em> written by the creator of Visual SourceSafe and Team Foundation Server, Brian Harry. </span></span></span></span></span></span></p>
<p><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"></span></span></span></span></span><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;">You can download the WhitePaper and watch the videos </span><a href="http://www.microsoft.com/visualstudio/en-us/upgrade-visual-sourcesafe"><span style="font-family: Verdana; font-size: x-small;">here</span></a><span style="font-family: Verdana; font-size: x-small;">!</span></span></span></span></p>
<div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><a href="http://www.microsoft.com/visualstudio/en-us/upgrade-visual-sourcesafe"><img src="http://www.enewsbuilder.net/nwcadence/SB_video_VSStoTFS.jpg" alt="" width="350" height="297" align="left" /></a></span></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"> <a href="http://www.microsoft.com/visualstudio/en-us/upgrade-visual-sourcesafe"><img src="http://www.enewsbuilder.net/nwcadence/MS_VSStoTFSlandingpage_Rennie_smaller(1).png" alt="" width="400" height="286" align="absMiddle" /></a></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"> </span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;"><strong>Looking to make the move to Visual Studio Team Foundation Server?   </strong></span></span></span></span><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;">Northwest Cadence would love to help! </span></span></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;"> </span></span></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;">We have also designed a special offering to help you manage your Visual SourceSafe migration to ensure success with TFS.   </span></span></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;"> </span></span></span></span></div>
<div><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana; font-size: x-small;"><span style="font-family: Verdana;"><span style="font-size: x-small;"> </span></span></span></span><span style="font-family: Verdana;"><span style="font-size: x-small;"><img src="http://www.enewsbuilder.net/nwcadence/VSS_to_TFS_package.png" alt="" width="633" height="654" align="middle" /></span></span></div>
<div>
<div><span style="font-family: Verdana;"><span style="font-family: Verdana;"><span style="font-size: x-small;">Please contact </span><a href="mailto:Linda.Collier@nwcadence.com"><span style="font-size: x-small;">Linda.Collier@nwcadence.com</span></a><span style="font-size: x-small;"> with any questions or to learn more about how Northwest Cadence can help you make the move to Visual Studio Team Foundation Server 2010.</span></span></span></div>
</div>
<p> </p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/02/make-the-move-to-visual-studio-team-foundation-server-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

